More rt changes
This commit is contained in:
@@ -61,13 +61,16 @@ void LightEnvironment::addPointLight(Component::PointLight pointLight) { points.
|
||||
|
||||
void LightEnvironment::commit() {
|
||||
lightEnvBuffer->pipelineBarrier(Gfx::SE_ACCESS_UNIFORM_READ_BIT | Gfx::SE_ACCESS_TRANSFER_WRITE_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_ALL_COMMANDS_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT | Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
|
||||
Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
|
||||
Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
pointLights->pipelineBarrier(Gfx::SE_ACCESS_SHADER_READ_BIT | Gfx::SE_ACCESS_TRANSFER_WRITE_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_ALL_COMMANDS_BIT, Gfx::SE_ACCESS_TRANSFER_WRITE_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT | Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
|
||||
Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
|
||||
Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
directionalLights->pipelineBarrier(Gfx::SE_ACCESS_SHADER_READ_BIT | Gfx::SE_ACCESS_TRANSFER_WRITE_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_ALL_COMMANDS_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT | Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
|
||||
Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
|
||||
Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT);
|
||||
lightEnv.numDirectionalLights = dirs.size();
|
||||
lightEnv.numPointLights = points.size();
|
||||
@@ -86,16 +89,26 @@ void LightEnvironment::commit() {
|
||||
});
|
||||
pointLights->rotateBuffer(sizeof(Component::PointLight) * points.size());
|
||||
pointLights->updateContents({
|
||||
.sourceData = {.size = sizeof(Component::PointLight) * points.size(), .data = (uint8*)points.data()},
|
||||
.sourceData =
|
||||
{
|
||||
.size = sizeof(Component::PointLight) * points.size(),
|
||||
.data = (uint8*)points.data(),
|
||||
},
|
||||
.numElements = points.size(),
|
||||
});
|
||||
|
||||
lightEnvBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_UNIFORM_READ_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_ALL_COMMANDS_BIT);
|
||||
pointLights->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_SHADER_READ_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_ALL_COMMANDS_BIT);
|
||||
lightEnvBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
Gfx::SE_ACCESS_UNIFORM_READ_BIT | Gfx::SE_ACCESS_TRANSFER_WRITE_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT | Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
|
||||
Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR);
|
||||
pointLights->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
Gfx::SE_ACCESS_SHADER_READ_BIT | Gfx::SE_ACCESS_TRANSFER_WRITE_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT | Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
|
||||
Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR);
|
||||
directionalLights->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT,
|
||||
Gfx::SE_ACCESS_SHADER_READ_BIT, Gfx::SE_PIPELINE_STAGE_ALL_COMMANDS_BIT);
|
||||
Gfx::SE_ACCESS_SHADER_READ_BIT | Gfx::SE_ACCESS_TRANSFER_WRITE_BIT,
|
||||
Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT | Gfx::SE_PIPELINE_STAGE_FRAGMENT_SHADER_BIT |
|
||||
Gfx::SE_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR);
|
||||
set->updateBuffer(0, lightEnvBuffer);
|
||||
set->updateBuffer(1, directionalLights);
|
||||
set->updateBuffer(2, pointLights);
|
||||
|
||||
Reference in New Issue
Block a user