Validation layer is complaining about missing readonly specifier on buffers in GLSL
This commit is contained in:
parent
db4472b067
commit
6867b0e9a6
5 changed files with 32 additions and 32 deletions
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
layout(set = 0, binding = 0) uniform Uniforms
|
||||
layout(set = 0, binding = 0) uniform readonly Uniforms
|
||||
{
|
||||
vec3 SunDir;
|
||||
float Padding1;
|
||||
|
|
@ -42,11 +42,11 @@ struct LightInfo
|
|||
float Padding3;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 1) buffer SurfaceIndexBuffer { uint surfaceIndices[]; };
|
||||
layout(set = 0, binding = 2) buffer SurfaceBuffer { SurfaceInfo surfaces[]; };
|
||||
layout(set = 0, binding = 3) buffer LightBuffer { LightInfo lights[]; };
|
||||
layout(set = 0, binding = 4) buffer LightIndexBuffer { int lightIndexes[]; };
|
||||
layout(set = 0, binding = 5) buffer PortalBuffer { PortalInfo portals[]; };
|
||||
layout(set = 0, binding = 1) buffer readonly SurfaceIndexBuffer { uint surfaceIndices[]; };
|
||||
layout(set = 0, binding = 2) buffer readonly SurfaceBuffer { SurfaceInfo surfaces[]; };
|
||||
layout(set = 0, binding = 3) buffer readonly LightBuffer { LightInfo lights[]; };
|
||||
layout(set = 0, binding = 4) buffer readonly LightIndexBuffer { int lightIndexes[]; };
|
||||
layout(set = 0, binding = 5) buffer readonly PortalBuffer { PortalInfo portals[]; };
|
||||
|
||||
struct LightmapRaytracePC
|
||||
{
|
||||
|
|
@ -66,4 +66,4 @@ struct LightmapRaytracePC
|
|||
float TileHeight;
|
||||
};
|
||||
|
||||
layout(std430, set = 0, binding = 6) buffer ConstantsBuffer { LightmapRaytracePC constants[]; };
|
||||
layout(std430, set = 0, binding = 6) buffer readonly ConstantsBuffer { LightmapRaytracePC constants[]; };
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ struct CollisionNode
|
|||
int padding3;
|
||||
};
|
||||
|
||||
layout(std430, set = 1, binding = 0) buffer NodeBuffer
|
||||
layout(std430, set = 1, binding = 0) buffer readonly NodeBuffer
|
||||
{
|
||||
int nodesRoot;
|
||||
int nodebufferPadding1;
|
||||
|
|
@ -36,5 +36,5 @@ struct SurfaceVertex // Note: this must always match the FFlatVertex struct
|
|||
vec2 luv;
|
||||
};
|
||||
|
||||
layout(std430, set = 1, binding = 1) buffer VertexBuffer { SurfaceVertex vertices[]; };
|
||||
layout(std430, set = 1, binding = 2) buffer ElementBuffer { int elements[]; };
|
||||
layout(std430, set = 1, binding = 1) buffer readonly VertexBuffer { SurfaceVertex vertices[]; };
|
||||
layout(std430, set = 1, binding = 2) buffer readonly ElementBuffer { int elements[]; };
|
||||
|
|
|
|||
|
|
@ -34,11 +34,11 @@ struct LightInfo
|
|||
float Padding3;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 0, std430) buffer SurfaceIndexBuffer { uint surfaceIndices[]; };
|
||||
layout(set = 0, binding = 1, std430) buffer SurfaceBuffer { SurfaceInfo surfaces[]; };
|
||||
layout(set = 0, binding = 2, std430) buffer LightBuffer { LightInfo lights[]; };
|
||||
layout(set = 0, binding = 3, std430) buffer LightIndexBuffer { int lightIndexes[]; };
|
||||
layout(set = 0, binding = 4, std430) buffer PortalBuffer { PortalInfo portals[]; };
|
||||
layout(set = 0, binding = 0, std430) buffer readonly SurfaceIndexBuffer { uint surfaceIndices[]; };
|
||||
layout(set = 0, binding = 1, std430) buffer readonly SurfaceBuffer { SurfaceInfo surfaces[]; };
|
||||
layout(set = 0, binding = 2, std430) buffer readonly LightBuffer { LightInfo lights[]; };
|
||||
layout(set = 0, binding = 3, std430) buffer readonly LightIndexBuffer { int lightIndexes[]; };
|
||||
layout(set = 0, binding = 4, std430) buffer readonly PortalBuffer { PortalInfo portals[]; };
|
||||
|
||||
#if defined(USE_RAYQUERY)
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ struct CollisionNode
|
|||
int padding3;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 5, std430) buffer NodeBuffer
|
||||
layout(set = 0, binding = 5, std430) buffer readonly NodeBuffer
|
||||
{
|
||||
int nodesRoot;
|
||||
int nodebufferPadding1;
|
||||
|
|
@ -77,8 +77,8 @@ struct SurfaceVertex // Note: this must always match the FFlatVertex struct
|
|||
vec2 luv;
|
||||
};
|
||||
|
||||
layout(set = 0, binding = 6, std430) buffer VertexBuffer { SurfaceVertex vertices[]; };
|
||||
layout(set = 0, binding = 7, std430) buffer ElementBuffer { int elements[]; };
|
||||
layout(set = 0, binding = 6, std430) buffer readonly VertexBuffer { SurfaceVertex vertices[]; };
|
||||
layout(set = 0, binding = 7, std430) buffer readonly ElementBuffer { int elements[]; };
|
||||
|
||||
layout(set = 1, binding = 0) uniform sampler2D textures[];
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ struct CollisionNode
|
|||
int element_index;
|
||||
int padding3;
|
||||
};
|
||||
layout(std430, set = 0, binding = 5) buffer NodeBuffer
|
||||
layout(std430, set = 0, binding = 5) buffer readonly NodeBuffer
|
||||
{
|
||||
int nodesRoot;
|
||||
int nodebufferPadding1;
|
||||
|
|
@ -35,7 +35,7 @@ struct SurfaceVertex // Note: this must always match the FFlatVertex struct
|
|||
vec2 uv;
|
||||
vec2 luv;
|
||||
};
|
||||
layout(std430, set = 0, binding = 6) buffer VertexBuffer { SurfaceVertex vertices[]; };
|
||||
layout(std430, set = 0, binding = 7) buffer ElementBuffer { int elements[]; };
|
||||
layout(std430, set = 0, binding = 6) buffer readonly VertexBuffer { SurfaceVertex vertices[]; };
|
||||
layout(std430, set = 0, binding = 7) buffer readonly ElementBuffer { int elements[]; };
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
// This must match the HWViewpointUniforms struct
|
||||
layout(set = 1, binding = 0, std140) uniform ViewpointUBO
|
||||
layout(set = 1, binding = 0, std140) uniform readonly ViewpointUBO
|
||||
{
|
||||
mat4 ProjectionMatrix;
|
||||
mat4 ViewMatrix;
|
||||
|
|
@ -21,7 +21,7 @@ layout(set = 1, binding = 0, std140) uniform ViewpointUBO
|
|||
int uLightTilesWidth; // Levelmesh light tiles
|
||||
};
|
||||
|
||||
layout(set = 1, binding = 1, std140) uniform MatricesUBO
|
||||
layout(set = 1, binding = 1, std140) uniform readonly MatricesUBO
|
||||
{
|
||||
mat4 ModelMatrix;
|
||||
mat4 NormalModelMatrix;
|
||||
|
|
@ -93,52 +93,52 @@ struct Fogball
|
|||
|
||||
#ifdef USE_LEVELMESH
|
||||
|
||||
layout(set = 1, binding = 2, std430) buffer SurfaceUniformsSSO
|
||||
layout(set = 1, binding = 2, std430) buffer readonly SurfaceUniformsSSO
|
||||
{
|
||||
SurfaceUniforms data[];
|
||||
};
|
||||
|
||||
layout(set = 1, binding = 3, std430) buffer SurfaceLightUniformsSSO
|
||||
layout(set = 1, binding = 3, std430) buffer readonly SurfaceLightUniformsSSO
|
||||
{
|
||||
SurfaceLightUniforms lightdata[];
|
||||
};
|
||||
|
||||
layout(set = 1, binding = 4, std430) buffer LightBufferSSO
|
||||
layout(set = 1, binding = 4, std430) buffer readonly LightBufferSSO
|
||||
{
|
||||
vec4 lights[];
|
||||
};
|
||||
|
||||
layout(set = 1, binding = 5, std140) uniform FogballBufferUBO
|
||||
layout(set = 1, binding = 5, std140) uniform readonly FogballBufferUBO
|
||||
{
|
||||
Fogball fogballs[MAX_FOGBALL_DATA];
|
||||
};
|
||||
|
||||
// bone matrix buffers
|
||||
layout(set = 1, binding = 6, std430) buffer BoneBufferSSO
|
||||
layout(set = 1, binding = 6, std430) buffer readonly BoneBufferSSO
|
||||
{
|
||||
mat4 bones[];
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
layout(set = 1, binding = 2, std140) uniform SurfaceUniformsUBO
|
||||
layout(set = 1, binding = 2, std140) uniform readonly SurfaceUniformsUBO
|
||||
{
|
||||
SurfaceUniforms data[MAX_SURFACE_UNIFORMS];
|
||||
};
|
||||
|
||||
// light buffers
|
||||
layout(set = 1, binding = 3, std140) uniform LightBufferUBO
|
||||
layout(set = 1, binding = 3, std140) uniform readonly LightBufferUBO
|
||||
{
|
||||
vec4 lights[MAX_LIGHT_DATA];
|
||||
};
|
||||
|
||||
layout(set = 1, binding = 4, std140) uniform FogballBufferUBO
|
||||
layout(set = 1, binding = 4, std140) uniform readonly FogballBufferUBO
|
||||
{
|
||||
Fogball fogballs[MAX_FOGBALL_DATA];
|
||||
};
|
||||
|
||||
// bone matrix buffers
|
||||
layout(set = 1, binding = 5, std430) buffer BoneBufferSSO
|
||||
layout(set = 1, binding = 5, std430) buffer readonly BoneBufferSSO
|
||||
{
|
||||
mat4 bones[];
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue