shaderUtils memory alloc improvement
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
This commit is contained in:
parent
f02d9979e3
commit
a21f3f0eeb
@ -1975,6 +1975,7 @@ Performance improvements
|
||||
- Clustering terrain draw calls
|
||||
- Reduce allocations in some rendering paths
|
||||
- Leverage standard uniforms buffer
|
||||
- ShaderUtils memory allocation improvement
|
||||
Lod emitter service checker function
|
||||
Mesh profiling
|
||||
Upgrade target framerate
|
||||
|
||||
@ -10,7 +10,6 @@ import org.joml.Vector3d;
|
||||
import org.joml.Vector3f;
|
||||
import org.joml.Vector3i;
|
||||
import org.joml.Vector4f;
|
||||
import org.lwjgl.BufferUtils;
|
||||
import org.lwjgl.opengl.GL40;
|
||||
import org.lwjgl.system.MemoryStack;
|
||||
|
||||
@ -39,7 +38,7 @@ public class ShaderUtils {
|
||||
//matrix4f
|
||||
if(value instanceof Matrix4f){
|
||||
Matrix4f currentUniform = (Matrix4f)value;
|
||||
GL40.glUniformMatrix4fv(uniformLocation, false, currentUniform.get(BufferUtils.createFloatBuffer(16)));
|
||||
GL40.glUniformMatrix4fv(uniformLocation, false, currentUniform.get(stack.mallocFloat(16)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Matrix4f(currentUniform)); //create new matrix4f to break pointer-matching with equals on cache check
|
||||
|
||||
@ -47,7 +46,7 @@ public class ShaderUtils {
|
||||
//matrix4d
|
||||
} else if(value instanceof Matrix4d){
|
||||
Matrix4d currentUniform = (Matrix4d)value;
|
||||
GL40.glUniformMatrix4fv(uniformLocation, false, currentUniform.get(BufferUtils.createFloatBuffer(16)));
|
||||
GL40.glUniformMatrix4fv(uniformLocation, false, currentUniform.get(stack.mallocFloat(16)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Matrix4d(currentUniform)); //create new matrix4f to break pointer-matching with equals on cache check
|
||||
|
||||
@ -55,7 +54,7 @@ public class ShaderUtils {
|
||||
//vector4f
|
||||
} else if(value instanceof Vector4f){
|
||||
Vector4f currentUniform = (Vector4f)value;
|
||||
GL40.glUniform4fv(uniformLocation, currentUniform.get(BufferUtils.createFloatBuffer(4)));
|
||||
GL40.glUniform4fv(uniformLocation, currentUniform.get(stack.mallocFloat(4)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Vector4f(currentUniform)); //create new vector3f to break pointer-matching with equals on cache check
|
||||
|
||||
@ -63,7 +62,7 @@ public class ShaderUtils {
|
||||
//vector3d
|
||||
} else if(value instanceof Vector3f){
|
||||
Vector3f currentUniform = (Vector3f)value;
|
||||
GL40.glUniform3fv(uniformLocation, currentUniform.get(BufferUtils.createFloatBuffer(3)));
|
||||
GL40.glUniform3fv(uniformLocation, currentUniform.get(stack.mallocFloat(3)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Vector3f(currentUniform)); //create new vector3f to break pointer-matching with equals on cache check
|
||||
|
||||
@ -71,7 +70,7 @@ public class ShaderUtils {
|
||||
//vector3d
|
||||
} else if(value instanceof Vector3d){
|
||||
Vector3d currentUniform = (Vector3d)value;
|
||||
GL40.glUniform3dv(uniformLocation, currentUniform.get(BufferUtils.createDoubleBuffer(3)));
|
||||
GL40.glUniform3dv(uniformLocation, currentUniform.get(stack.mallocDouble(3)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Vector3d(currentUniform)); //create new vector3d to break pointer-matching with equals on cache check
|
||||
|
||||
@ -79,7 +78,7 @@ public class ShaderUtils {
|
||||
//vector2d
|
||||
} else if(value instanceof Vector2d){
|
||||
Vector2d currentUniform = (Vector2d)value;
|
||||
GL40.glUniform2dv(uniformLocation, currentUniform.get(BufferUtils.createDoubleBuffer(2)));
|
||||
GL40.glUniform2dv(uniformLocation, currentUniform.get(stack.mallocDouble(2)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Vector2d(currentUniform)); //create new vector2d to break pointer-matching with equals on cache check
|
||||
|
||||
@ -87,7 +86,7 @@ public class ShaderUtils {
|
||||
//Vector3i
|
||||
} else if(value instanceof Vector3i){
|
||||
Vector3i currentUniform = (Vector3i)value;
|
||||
GL40.glUniform3uiv(uniformLocation, currentUniform.get(BufferUtils.createIntBuffer(3)));
|
||||
GL40.glUniform3uiv(uniformLocation, currentUniform.get(stack.mallocInt(3)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Vector3i(currentUniform)); //create new vector2d to break pointer-matching with equals on cache check
|
||||
|
||||
@ -95,7 +94,7 @@ public class ShaderUtils {
|
||||
//Vector2i
|
||||
} else if(value instanceof Vector2i){
|
||||
Vector2i currentUniform = (Vector2i)value;
|
||||
GL40.glUniform2uiv(uniformLocation, currentUniform.get(BufferUtils.createIntBuffer(2)));
|
||||
GL40.glUniform2uiv(uniformLocation, currentUniform.get(stack.mallocInt(2)));
|
||||
Globals.renderingEngine.checkError();
|
||||
uniformMap.put(uniformLocation,new Vector2i(currentUniform)); //create new vector2d to break pointer-matching with equals on cache check
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user