- pad out the StreamData buffer to 16 bytes and avoid any form of conditional compilation here.

Vulkan does not manage to get the shader properly compiled without this.
This commit is contained in:
Christoph Oelckers 2021-04-05 17:58:59 +02:00
parent f2dd4ceaab
commit 0017b5d9c5
2 changed files with 6 additions and 8 deletions

View file

@ -200,9 +200,8 @@ struct StreamData
FVector4 uSplitBottomPlane; FVector4 uSplitBottomPlane;
FVector4 uDetailParms; FVector4 uDetailParms;
#ifdef NPOT_EMULATION FVector4 uNpotEmulation;
FVector2 uNpotEmulation; FVector4 padding1, padding2, padding3;
#endif
}; };
class FRenderState class FRenderState
@ -295,7 +294,7 @@ public:
mStreamData.uDynLightColor = { 0.0f, 0.0f, 0.0f, 1.0f }; mStreamData.uDynLightColor = { 0.0f, 0.0f, 0.0f, 1.0f };
mStreamData.uDetailParms = { 0.0f, 0.0f, 0.0f, 0.0f }; mStreamData.uDetailParms = { 0.0f, 0.0f, 0.0f, 0.0f };
#ifdef NPOT_EMULATION #ifdef NPOT_EMULATION
mStreamData.uNpotEmulation = { 0,0 }; mStreamData.uNpotEmulation = { 0,0,0,0 };
#endif #endif
mModelMatrix.loadIdentity(); mModelMatrix.loadIdentity();
mTextureMatrix.loadIdentity(); mTextureMatrix.loadIdentity();
@ -490,7 +489,7 @@ public:
void SetNpotEmulation(float factor, float offset) void SetNpotEmulation(float factor, float offset)
{ {
#ifdef NPOT_EMULATION #ifdef NPOT_EMULATION
mStreamData.uNpotEmulation = { offset, factor }; mStreamData.uNpotEmulation = { offset, factor, 0, 0 };
#endif #endif
} }

View file

@ -163,9 +163,8 @@ static const char *shaderBindings = R"(
vec4 uSplitBottomPlane; vec4 uSplitBottomPlane;
vec4 uDetailParms; vec4 uDetailParms;
#ifdef NPOT_EMULATION vec4 uNpotEmulation;
vec2 uNpotEmulation; vec4 padding1, padding2, padding3;
#endif
}; };
layout(set = 0, binding = 3, std140) uniform StreamUBO { layout(set = 0, binding = 3, std140) uniform StreamUBO {