25 Commits over 0 Days - ∞cph!
Precompute vertex layout offsets and bits in rendermesh instead of doing it every compute dispatch, as valve comments suggest
Disabling D_SKINNING and D_MORPH when D_CS_VERTEX_ANIMATION is enabled would be a mistake because it would break older compiled shaders
Remove this toolvis shit from skinning compute, I don't think it's needed
These newer decompress normal functions can be removed, we're not using them yet
Remove SV_VertexID from depth_only
use shader_c from master, these somehow got fucked
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
Add back vertex cache request batching now we know everything works
Fix decompressing normals in skinning compute shader
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)
Resize vertex cache buffer when out of space
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
Don't run morph code when using vertex cache
Fix incorrect offset to CalculateMorphSubrectData
Define MORPH_TEXTURE_ATLAS_WIDTH as g_nMorphTextureAtlasWidth when in compute
Compute morphs, normals and tangents in skinning compute shader
Decode cached vertex normals and tangents
Don't call CalculateInstancingObjectToWorldMatrix when using D_CS_VERTEX_ANIMATION, it's already calculated in the cache
Add SV_VertexID to VS_INPUT, this can be used for indexing vertex cache instead of using D_MORPH nVertexIndex
Make sure both buffers are destroyed
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