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
This commit is contained in:
Sascha Willems 2024-07-03 22:04:57 +02:00 committed by GitHub
parent c598b1e7ab
commit 8b4ee59033
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 580 additions and 0 deletions

View file

@ -0,0 +1,20 @@
/* Copyright (c) 2024, Sascha Willems
*
* SPDX-License-Identifier: MIT
*
*/
#version 450
layout (set = 0, binding = 0) uniform sampler2D samplerColorMap;
layout (location = 0) in vec3 inNormal;
layout (location = 1) in vec3 inColor;
layout (location = 2) in vec2 inUV;
layout (location = 0) out vec4 outFragColor;
void main()
{
outFragColor = texture(samplerColorMap, inUV) * vec4(inColor, 1.0);
}

Binary file not shown.

View file

@ -0,0 +1,42 @@
/* 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);
}

Binary file not shown.