Skip to content

Commit ac1d23c

Browse files
committed
Fix shader buffer block managment
1 parent cce6f80 commit ac1d23c

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

jme3-core/src/main/java/com/jme3/material/Material.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -848,13 +848,13 @@ private void updateShaderMaterialParameter(Renderer renderer, VarType type, Shad
848848
if (type == VarType.ShaderStorageBufferObject) {
849849
btype = ShaderBufferBlock.BufferType.ShaderStorageBufferObject;
850850
bufferBlock.setBufferObject(btype, bufferObject);
851-
renderer.setShaderStorageBufferObject(unit.bufferUnit++, bufferObject);
851+
renderer.setShaderStorageBufferObject(unit.bufferUnit, bufferObject); // TODO: probably not needed
852852
} else {
853853
btype = ShaderBufferBlock.BufferType.UniformBufferObject;
854854
bufferBlock.setBufferObject(btype, bufferObject);
855-
renderer.setUniformBufferObject(unit.bufferUnit++, bufferObject);
855+
renderer.setUniformBufferObject(unit.bufferUnit, bufferObject); // TODO: probably not needed
856856
}
857-
857+
unit.bufferUnit++;
858858
} else {
859859
Uniform uniform = shader.getUniform(param.getPrefixedName());
860860
if (!override && uniform.isSetByCurrentMaterial()) return;

jme3-core/src/main/java/com/jme3/shader/ShaderBufferBlock.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public void setBufferObject(BufferType type, BufferObject bufferObject) {
6363
if (bufferObject == null) {
6464
throw new IllegalArgumentException("for storage block " + name + ": storageData cannot be null");
6565
}
66+
if (bufferObject == this.bufferObject && type == this.type) return;
6667
this.bufferObject = bufferObject;
6768
this.bufferObjectRef = new WeakReference<BufferObject>(bufferObject);
6869
this.type = type;

0 commit comments

Comments
 (0)