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
|
- Clustering terrain draw calls
|
||||||
- Reduce allocations in some rendering paths
|
- Reduce allocations in some rendering paths
|
||||||
- Leverage standard uniforms buffer
|
- Leverage standard uniforms buffer
|
||||||
|
- ShaderUtils memory allocation improvement
|
||||||
Lod emitter service checker function
|
Lod emitter service checker function
|
||||||
Mesh profiling
|
Mesh profiling
|
||||||
Upgrade target framerate
|
Upgrade target framerate
|
||||||
|
|||||||
@ -10,7 +10,6 @@ import org.joml.Vector3d;
|
|||||||
import org.joml.Vector3f;
|
import org.joml.Vector3f;
|
||||||
import org.joml.Vector3i;
|
import org.joml.Vector3i;
|
||||||
import org.joml.Vector4f;
|
import org.joml.Vector4f;
|
||||||
import org.lwjgl.BufferUtils;
|
|
||||||
import org.lwjgl.opengl.GL40;
|
import org.lwjgl.opengl.GL40;
|
||||||
import org.lwjgl.system.MemoryStack;
|
import org.lwjgl.system.MemoryStack;
|
||||||
|
|
||||||
@ -39,7 +38,7 @@ public class ShaderUtils {
|
|||||||
//matrix4f
|
//matrix4f
|
||||||
if(value instanceof Matrix4f){
|
if(value instanceof Matrix4f){
|
||||||
Matrix4f currentUniform = (Matrix4f)value;
|
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();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Matrix4f(currentUniform)); //create new matrix4f to break pointer-matching with equals on cache check
|
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
|
//matrix4d
|
||||||
} else if(value instanceof Matrix4d){
|
} else if(value instanceof Matrix4d){
|
||||||
Matrix4d currentUniform = (Matrix4d)value;
|
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();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Matrix4d(currentUniform)); //create new matrix4f to break pointer-matching with equals on cache check
|
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
|
//vector4f
|
||||||
} else if(value instanceof Vector4f){
|
} else if(value instanceof Vector4f){
|
||||||
Vector4f currentUniform = (Vector4f)value;
|
Vector4f currentUniform = (Vector4f)value;
|
||||||
GL40.glUniform4fv(uniformLocation, currentUniform.get(BufferUtils.createFloatBuffer(4)));
|
GL40.glUniform4fv(uniformLocation, currentUniform.get(stack.mallocFloat(4)));
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Vector4f(currentUniform)); //create new vector3f to break pointer-matching with equals on cache check
|
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
|
//vector3d
|
||||||
} else if(value instanceof Vector3f){
|
} else if(value instanceof Vector3f){
|
||||||
Vector3f currentUniform = (Vector3f)value;
|
Vector3f currentUniform = (Vector3f)value;
|
||||||
GL40.glUniform3fv(uniformLocation, currentUniform.get(BufferUtils.createFloatBuffer(3)));
|
GL40.glUniform3fv(uniformLocation, currentUniform.get(stack.mallocFloat(3)));
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Vector3f(currentUniform)); //create new vector3f to break pointer-matching with equals on cache check
|
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
|
//vector3d
|
||||||
} else if(value instanceof Vector3d){
|
} else if(value instanceof Vector3d){
|
||||||
Vector3d currentUniform = (Vector3d)value;
|
Vector3d currentUniform = (Vector3d)value;
|
||||||
GL40.glUniform3dv(uniformLocation, currentUniform.get(BufferUtils.createDoubleBuffer(3)));
|
GL40.glUniform3dv(uniformLocation, currentUniform.get(stack.mallocDouble(3)));
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Vector3d(currentUniform)); //create new vector3d to break pointer-matching with equals on cache check
|
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
|
//vector2d
|
||||||
} else if(value instanceof Vector2d){
|
} else if(value instanceof Vector2d){
|
||||||
Vector2d currentUniform = (Vector2d)value;
|
Vector2d currentUniform = (Vector2d)value;
|
||||||
GL40.glUniform2dv(uniformLocation, currentUniform.get(BufferUtils.createDoubleBuffer(2)));
|
GL40.glUniform2dv(uniformLocation, currentUniform.get(stack.mallocDouble(2)));
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Vector2d(currentUniform)); //create new vector2d to break pointer-matching with equals on cache check
|
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
|
//Vector3i
|
||||||
} else if(value instanceof Vector3i){
|
} else if(value instanceof Vector3i){
|
||||||
Vector3i currentUniform = (Vector3i)value;
|
Vector3i currentUniform = (Vector3i)value;
|
||||||
GL40.glUniform3uiv(uniformLocation, currentUniform.get(BufferUtils.createIntBuffer(3)));
|
GL40.glUniform3uiv(uniformLocation, currentUniform.get(stack.mallocInt(3)));
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Vector3i(currentUniform)); //create new vector2d to break pointer-matching with equals on cache check
|
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
|
//Vector2i
|
||||||
} else if(value instanceof Vector2i){
|
} else if(value instanceof Vector2i){
|
||||||
Vector2i currentUniform = (Vector2i)value;
|
Vector2i currentUniform = (Vector2i)value;
|
||||||
GL40.glUniform2uiv(uniformLocation, currentUniform.get(BufferUtils.createIntBuffer(2)));
|
GL40.glUniform2uiv(uniformLocation, currentUniform.get(stack.mallocInt(2)));
|
||||||
Globals.renderingEngine.checkError();
|
Globals.renderingEngine.checkError();
|
||||||
uniformMap.put(uniformLocation,new Vector2i(currentUniform)); //create new vector2d to break pointer-matching with equals on cache check
|
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