3 Days Ago
Add octohedral_encoding.fxc Add skinning_cs.shader Try and use animated vertex cache when D_CS_VERTEX_ANIMATION is enabled Store vb size offsets in rendermesh Create GPU buffers for skinned vertex cache and vertex cache offsets Dispatch requested vertex cache updates Animatables requests vertex cache updates Compile shaders Make sure both buffers are destroyed Add SV_VertexID to VS_INPUT, this can be used for indexing vertex cache instead of using D_MORPH nVertexIndex Don't call CalculateInstancingObjectToWorldMatrix when using D_CS_VERTEX_ANIMATION, it's already calculated in the cache Decode cached vertex normals and tangents Compute morphs, normals and tangents in skinning compute shader Define MORPH_TEXTURE_ATLAS_WIDTH as g_nMorphTextureAtlasWidth when in compute Fix incorrect offset to CalculateMorphSubrectData Don't run morph code when using vertex cache Compile shaders Use remaining bytes in extra shader data to hold base vertex cache offset, add another vertex id lookup buffer relative to meshes vertex buffer size offsets - this allows correct indexing into cached vertices while remaining backwards compatible Compile shaders Resize vertex cache buffer when out of space Use descriptor set for vertex cache so that it doesn't need to be set with an attribute (which would be set too early if resize is needed) Compile shaders Fix decompressing normals in skinning compute shader Add back vertex cache request batching now we know everything works