hairparticle raytracing buffer alignment fix
This commit is contained in:
@@ -18,7 +18,7 @@ RWBuffer<float4> vertexBuffer_POS : register(u1);
|
||||
RWBuffer<float4> vertexBuffer_UVS : register(u2);
|
||||
RWBuffer<uint> culledIndexBuffer : register(u3);
|
||||
RWStructuredBuffer<IndirectDrawArgsIndexedInstanced> indirectBuffer : register(u4);
|
||||
RWStructuredBuffer<float3> vertexBuffer_POS_RT : register(u5);
|
||||
RWByteAddressBuffer vertexBuffer_POS_RT : register(u5);
|
||||
|
||||
[numthreads(THREADCOUNT_SIMULATEHAIR, 1, 1)]
|
||||
void main(uint3 DTid : SV_DispatchThreadID, uint3 Gid : SV_GroupID, uint groupIndex : SV_GroupIndex)
|
||||
@@ -277,7 +277,7 @@ void main(uint3 DTid : SV_DispatchThreadID, uint3 Gid : SV_GroupID, uint groupIn
|
||||
{
|
||||
position = 0; // We can only zero out for raytracing geometry to keep correct prevpos swapping motion vectors!
|
||||
}
|
||||
vertexBuffer_POS_RT[v0 + vertexID] = position;
|
||||
vertexBuffer_POS_RT.Store<float3>((v0 + vertexID) * sizeof(float3), position);
|
||||
}
|
||||
|
||||
// Frustum culling:
|
||||
|
||||
@@ -114,7 +114,7 @@ namespace wi
|
||||
AlignTo(vb_pos[1].size, alignment) +
|
||||
AlignTo(vb_uvs.size, alignment) +
|
||||
AlignTo(ib_culled.size, alignment) +
|
||||
AlignTo(AlignTo(vb_pos_raytracing.size, alignment), sizeof(float3))
|
||||
AlignTo(vb_pos_raytracing.size, alignment)
|
||||
;
|
||||
device->CreateBuffer(&bd, nullptr, &generalBuffer);
|
||||
device->SetName(&generalBuffer, "HairParticleSystem::generalBuffer");
|
||||
@@ -174,11 +174,9 @@ namespace wi
|
||||
ib_culled.descriptor_uav = device->GetDescriptorIndex(&generalBuffer, SubresourceType::UAV, ib_culled.subresource_uav);
|
||||
buffer_offset += ib_culled.size;
|
||||
|
||||
constexpr uint32_t vb_pos_raytracing_stride = sizeof(float3);
|
||||
buffer_offset = AlignTo(buffer_offset, alignment);
|
||||
buffer_offset = AlignTo(buffer_offset, sizeof(float3));
|
||||
vb_pos_raytracing.offset = buffer_offset;
|
||||
vb_pos_raytracing.subresource_uav = device->CreateSubresource(&generalBuffer, SubresourceType::UAV, vb_pos_raytracing.offset, vb_pos_raytracing.size, nullptr, &vb_pos_raytracing_stride);
|
||||
vb_pos_raytracing.subresource_uav = device->CreateSubresource(&generalBuffer, SubresourceType::UAV, vb_pos_raytracing.offset, vb_pos_raytracing.size);
|
||||
vb_pos_raytracing.descriptor_uav = device->GetDescriptorIndex(&generalBuffer, SubresourceType::UAV, vb_pos_raytracing.subresource_uav);
|
||||
buffer_offset += vb_pos_raytracing.size;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace wi::version
|
||||
// minor features, major updates, breaking compatibility changes
|
||||
const int minor = 71;
|
||||
// minor bug fixes, alterations, refactors, updates
|
||||
const int revision = 341;
|
||||
const int revision = 342;
|
||||
|
||||
const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user