From 6862b8c970c848ab8be3f3783594d0f921e18207 Mon Sep 17 00:00:00 2001 From: bjorn Date: Thu, 27 Apr 2023 20:22:31 -0700 Subject: [PATCH] Change cofactor/normal matrix to mat3; This means per-draw uniform data is 128 bytes now! --- etc/shaders/lovr.glsl | 4 ++-- src/modules/graphics/graphics.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/etc/shaders/lovr.glsl b/etc/shaders/lovr.glsl index 54ed6155..79019a86 100644 --- a/etc/shaders/lovr.glsl +++ b/etc/shaders/lovr.glsl @@ -29,7 +29,7 @@ struct Camera { struct Draw { mat4 transform; - mat4 normalMatrix; + mat3 normalMatrix; vec4 color; }; @@ -155,7 +155,7 @@ layout(location = 14) in vec3 Tangent; #ifdef GL_VERTEX_SHADER #define DrawID gl_BaseInstance #define Transform Draws[DrawID].transform -#define NormalMatrix mat3(Draws[DrawID].normalMatrix) +#define NormalMatrix Draws[DrawID].normalMatrix #define PassColor Draws[DrawID].color #define ClipFromLocal (ViewProjection * Transform) #define ClipFromWorld (ViewProjection) diff --git a/src/modules/graphics/graphics.c b/src/modules/graphics/graphics.c index b25a1716..28072a38 100644 --- a/src/modules/graphics/graphics.c +++ b/src/modules/graphics/graphics.c @@ -173,7 +173,7 @@ struct Font { typedef struct { float transform[16]; - float cofactor[16]; + float cofactor[12]; float color[4]; } DrawData; @@ -4722,7 +4722,7 @@ static void bindBundles(Pass* pass, Draw* draw, Shader* shader) { mat4_cofactor(cofactor); memcpy(pass->drawData->transform, transform, 64); - memcpy(pass->drawData->cofactor, cofactor, 64); + memcpy(pass->drawData->cofactor, cofactor, 48); memcpy(pass->drawData->color, pass->pipeline->color, 16); pass->drawData++; }