procedural-3d-engine/shaders/glsl/bufferdeviceaddress/cube.vert
Sascha Willems 8b4ee59033
Add new sample for buffer device address (#1144)
* Started work on buffer device address sample

* Code cleanup

* Added BDA sample to readm

* Added android build files for BDA sample

* Replaces all uniform buffers with references
Comments and code cleanup
2024-07-03 22:04:57 +02:00

42 lines
No EOL
1 KiB
GLSL

/* Copyright (c) 2024, Sascha Willems
*
* SPDX-License-Identifier: MIT
*
*/
#version 450
#extension GL_EXT_scalar_block_layout: require
#extension GL_EXT_buffer_reference : require
layout (location = 0) in vec3 inPos;
layout (location = 1) in vec3 inNormal;
layout (location = 2) in vec2 inUV;
layout (location = 3) in vec3 inColor;
layout (buffer_reference, scalar) readonly buffer MatrixReference {
mat4 matrix;
};
layout (push_constant) uniform PushConstants
{
// Pointer to the buffer with the scene's MVP matrix
MatrixReference sceneDataReference;
// Pointer to the buffer for the data for each model
MatrixReference modelDataReference;
} pushConstants;
layout (location = 0) out vec3 outNormal;
layout (location = 1) out vec3 outColor;
layout (location = 2) out vec2 outUV;
void main()
{
MatrixReference sceneData = pushConstants.sceneDataReference;
MatrixReference modelData = pushConstants.modelDataReference;
outNormal = inNormal;
outColor = inColor;
outUV = inUV;
gl_Position = sceneData.matrix * modelData.matrix * vec4(inPos.xyz, 1.0);
}