A slap on the wrist

- Add restrict qualifier to images in downsample shaders
- Early out when there are no changed pages in
  IndirectInstancer#uploadInstances
This commit is contained in:
Jozufozu 2024-09-15 16:37:12 -07:00
parent d342ae740c
commit 9f938e0673
3 changed files with 17 additions and 13 deletions

View file

@ -82,6 +82,10 @@ public class IndirectInstancer<I extends Instance> extends AbstractInstancer<I>
} }
public void uploadInstances(StagingBuffer stagingBuffer, int instanceVbo) { public void uploadInstances(StagingBuffer stagingBuffer, int instanceVbo) {
if (changedPages.isEmpty()) {
return;
}
int numPages = mapping.pageCount(); int numPages = mapping.pageCount();
var instanceCount = instances.size(); var instanceCount = instances.size();

View file

@ -1,12 +1,12 @@
#include "flywheel:internal/indirect/downsample.glsl" #include "flywheel:internal/indirect/downsample.glsl"
layout(binding = 0) uniform sampler2D mip_0; layout(binding = 0) uniform sampler2D mip_0;
layout(binding = 1, r32f) uniform writeonly image2D mip_1; layout(binding = 1, r32f) uniform restrict writeonly image2D mip_1;
layout(binding = 2, r32f) uniform writeonly image2D mip_2; layout(binding = 2, r32f) uniform restrict writeonly image2D mip_2;
layout(binding = 3, r32f) uniform writeonly image2D mip_3; layout(binding = 3, r32f) uniform restrict writeonly image2D mip_3;
layout(binding = 4, r32f) uniform writeonly image2D mip_4; layout(binding = 4, r32f) uniform restrict writeonly image2D mip_4;
layout(binding = 5, r32f) uniform writeonly image2D mip_5; layout(binding = 5, r32f) uniform restrict writeonly image2D mip_5;
layout(binding = 6, r32f) uniform writeonly image2D mip_6; layout(binding = 6, r32f) uniform restrict writeonly image2D mip_6;
float reduce_load_mip_0(uvec2 tex) { float reduce_load_mip_0(uvec2 tex) {
// NOTE: mip_0 is the actual depth buffer, and mip_1 is the "base" of our depth pyramid and has the next // NOTE: mip_0 is the actual depth buffer, and mip_1 is the "base" of our depth pyramid and has the next

View file

@ -1,12 +1,12 @@
#include "flywheel:internal/indirect/downsample.glsl" #include "flywheel:internal/indirect/downsample.glsl"
layout(binding = 0, r32f) uniform readonly image2D mip_6; layout(binding = 0, r32f) uniform restrict readonly image2D mip_6;
layout(binding = 1, r32f) uniform writeonly image2D mip_7; layout(binding = 1, r32f) uniform restrict writeonly image2D mip_7;
layout(binding = 2, r32f) uniform writeonly image2D mip_8; layout(binding = 2, r32f) uniform restrict writeonly image2D mip_8;
layout(binding = 3, r32f) uniform writeonly image2D mip_9; layout(binding = 3, r32f) uniform restrict writeonly image2D mip_9;
layout(binding = 4, r32f) uniform writeonly image2D mip_10; layout(binding = 4, r32f) uniform restrict writeonly image2D mip_10;
layout(binding = 5, r32f) uniform writeonly image2D mip_11; layout(binding = 5, r32f) uniform restrict writeonly image2D mip_11;
layout(binding = 6, r32f) uniform writeonly image2D mip_12; layout(binding = 6, r32f) uniform restrict writeonly image2D mip_12;
float reduce_load_mip_6(ivec2 tex) { float reduce_load_mip_6(ivec2 tex) {
// NOTE: We could bind mip_6 as a sampler2D and use textureGather, // NOTE: We could bind mip_6 as a sampler2D and use textureGather,