We got exr loading
This commit is contained in:
@@ -28,6 +28,7 @@ void GameRenderer::init(GfxDevice& gfxDevice, const glm::ivec2& drawImageSize) {
|
||||
}
|
||||
|
||||
void GameRenderer::beginDrawing(GfxDevice& gfxDevice) {
|
||||
flushMaterialUpdates(gfxDevice);
|
||||
meshDrawCommands.clear();
|
||||
}
|
||||
|
||||
@@ -47,8 +48,13 @@ void GameRenderer::draw(VkCommandBuffer cmd, GfxDevice& gfxDevice, const Camera&
|
||||
.fogDensity = sceneData.fogDensity,
|
||||
.materialsBuffer = materialCache.getMaterialDataBufferAddress(),
|
||||
};
|
||||
sceneDataBuffer.uploadNewData(
|
||||
cmd, gfxDevice.getCurrentFrameIndex(), (void*)&gpuSceneData, sizeof(GPUSceneData));
|
||||
vkutil::bufferHostWriteToShaderReadBarrier(
|
||||
cmd,
|
||||
materialCache.getMaterialDataBuffer().buffer,
|
||||
0,
|
||||
VK_WHOLE_SIZE
|
||||
);
|
||||
sceneDataBuffer.uploadNewData(cmd, gfxDevice.getCurrentFrameIndex(), (void*)&gpuSceneData, sizeof(GPUSceneData));
|
||||
|
||||
const auto& drawImage = gfxDevice.getImage(drawImageId);
|
||||
const auto& depthImage = gfxDevice.getImage(depthImageId);
|
||||
@@ -122,7 +128,7 @@ Material& GameRenderer::getMaterialMutable(MaterialID id) {
|
||||
|
||||
void GameRenderer::updateMaterialGPU(MaterialID id) {
|
||||
assert(id != NULL_MATERIAL_ID);
|
||||
materialCache.updateMaterialGPU(GameState::GetInstance().Gfx(), id);
|
||||
pendingMaterialUploads.push_back(id);
|
||||
}
|
||||
|
||||
void GameRenderer::setSkyboxTexture(ImageID skyboxImageId) {
|
||||
@@ -130,6 +136,14 @@ void GameRenderer::setSkyboxTexture(ImageID skyboxImageId) {
|
||||
skyboxPipeline->setSkyboxImage(skyboxImageId);
|
||||
}
|
||||
|
||||
void GameRenderer::flushMaterialUpdates(GfxDevice& gfxDevice) {
|
||||
for (MaterialID id : pendingMaterialUploads) {
|
||||
materialCache.updateMaterialGPU(gfxDevice, id);
|
||||
// if non-coherent: flush mapped range for that id here
|
||||
}
|
||||
pendingMaterialUploads.clear();
|
||||
}
|
||||
|
||||
void GameRenderer::createDrawImage(GfxDevice& gfxDevice,
|
||||
const glm::ivec2& drawImageSize,
|
||||
bool firstCreate)
|
||||
|
||||
Reference in New Issue
Block a user