Code cleanup, removed unnecessary VERTEX_BUFFER_BIND_ID

This commit is contained in:
Sascha Willems 2024-01-08 20:26:41 +01:00
parent fc3e535074
commit 6893a04a43
12 changed files with 38 additions and 56 deletions

View file

@ -10,7 +10,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#define VERTEX_BUFFER_BIND_ID 0
#if defined(__ANDROID__) #if defined(__ANDROID__)
// Lower particle count on Android for performance reasons // Lower particle count on Android for performance reasons
#define PARTICLE_COUNT 128 * 1024 #define PARTICLE_COUNT 128 * 1024
@ -169,7 +168,7 @@ public:
vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, graphics.pipelineLayout, 0, 1, &graphics.descriptorSet, 0, NULL); vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, graphics.pipelineLayout, 0, 1, &graphics.descriptorSet, 0, NULL);
VkDeviceSize offsets[1] = { 0 }; VkDeviceSize offsets[1] = { 0 };
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &compute.storageBuffer.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &compute.storageBuffer.buffer, offsets);
vkCmdDraw(drawCmdBuffers[i], PARTICLE_COUNT, 1, 0, 0); vkCmdDraw(drawCmdBuffers[i], PARTICLE_COUNT, 1, 0, 0);
drawUI(drawCmdBuffers[i]); drawUI(drawCmdBuffers[i]);
@ -349,7 +348,7 @@ public:
vertices.bindingDescriptions.resize(1); vertices.bindingDescriptions.resize(1);
vertices.bindingDescriptions[0] = vertices.bindingDescriptions[0] =
vks::initializers::vertexInputBindingDescription( vks::initializers::vertexInputBindingDescription(
VERTEX_BUFFER_BIND_ID, 0,
sizeof(Particle), sizeof(Particle),
VK_VERTEX_INPUT_RATE_VERTEX); VK_VERTEX_INPUT_RATE_VERTEX);
@ -359,14 +358,14 @@ public:
// Location 0 : Position // Location 0 : Position
vertices.attributeDescriptions[0] = vertices.attributeDescriptions[0] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
0, 0,
VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R32G32_SFLOAT,
offsetof(Particle, pos)); offsetof(Particle, pos));
// Location 1 : Gradient position // Location 1 : Gradient position
vertices.attributeDescriptions[1] = vertices.attributeDescriptions[1] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
1, 1,
VK_FORMAT_R32G32B32A32_SFLOAT, VK_FORMAT_R32G32B32A32_SFLOAT,
offsetof(Particle, gradientPos)); offsetof(Particle, gradientPos));

View file

@ -8,8 +8,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#define VERTEX_BUFFER_BIND_ID 0
#if defined(__ANDROID__) #if defined(__ANDROID__)
#define TEX_DIM 1024 #define TEX_DIM 1024
#else #else

View file

@ -8,8 +8,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#define VERTEX_BUFFER_BIND_ID 0
// Vertex layout for this example // Vertex layout for this example
struct Vertex { struct Vertex {
float pos[3]; float pos[3];
@ -251,7 +249,7 @@ public:
vkCmdSetScissor(drawCmdBuffers[i], 0, 1, &scissor); vkCmdSetScissor(drawCmdBuffers[i], 0, 1, &scissor);
VkDeviceSize offsets[1] = { 0 }; VkDeviceSize offsets[1] = { 0 };
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &vertexBuffer.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &vertexBuffer.buffer, offsets);
vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32); vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32);
// Left (pre compute) // Left (pre compute)
@ -332,16 +330,16 @@ public:
{ {
// Binding description // Binding description
vertices.bindingDescriptions = { vertices.bindingDescriptions = {
vks::initializers::vertexInputBindingDescription(VERTEX_BUFFER_BIND_ID, sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX) vks::initializers::vertexInputBindingDescription(0, sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX)
}; };
// Attribute descriptions // Attribute descriptions
// Describes memory layout and shader positions // Describes memory layout and shader positions
vertices.attributeDescriptions = { vertices.attributeDescriptions = {
// Location 0: Position // Location 0: Position
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, pos)), vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, pos)),
// Location 1: Texture coordinates // Location 1: Texture coordinates
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32_SFLOAT, offsetof(Vertex, uv)), vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32_SFLOAT, offsetof(Vertex, uv)),
}; };
// Assign to vertex buffer // Assign to vertex buffer

View file

@ -10,8 +10,6 @@
#include "VulkanFrameBuffer.hpp" #include "VulkanFrameBuffer.hpp"
#include "VulkanglTFModel.h" #include "VulkanglTFModel.h"
#define VERTEX_BUFFER_BIND_ID 0
// Shadowmap properties // Shadowmap properties
#if defined(__ANDROID__) #if defined(__ANDROID__)
#define SHADOWMAP_DIM 1024 #define SHADOWMAP_DIM 1024

View file

@ -10,8 +10,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#define VERTEX_BUFFER_BIND_ID 0
// Vertex layout for this example // Vertex layout for this example
struct Vertex { struct Vertex {
float pos[3]; float pos[3];
@ -222,7 +220,7 @@ public:
// Signed distance field font // Signed distance field font
vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, 0, 1, &descriptorSets.sdf, 0, NULL); vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, 0, 1, &descriptorSets.sdf, 0, NULL);
vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.sdf); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.sdf);
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &vertexBuffer.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &vertexBuffer.buffer, offsets);
vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32); vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32);
vkCmdDrawIndexed(drawCmdBuffers[i], indexCount, 1, 0, 0, 0); vkCmdDrawIndexed(drawCmdBuffers[i], indexCount, 1, 0, 0, 0);
@ -325,7 +323,7 @@ public:
vertices.bindingDescriptions.resize(1); vertices.bindingDescriptions.resize(1);
vertices.bindingDescriptions[0] = vertices.bindingDescriptions[0] =
vks::initializers::vertexInputBindingDescription( vks::initializers::vertexInputBindingDescription(
VERTEX_BUFFER_BIND_ID, 0,
sizeof(Vertex), sizeof(Vertex),
VK_VERTEX_INPUT_RATE_VERTEX); VK_VERTEX_INPUT_RATE_VERTEX);
@ -335,14 +333,14 @@ public:
// Location 0 : Position // Location 0 : Position
vertices.attributeDescriptions[0] = vertices.attributeDescriptions[0] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
0, 0,
VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SFLOAT,
0); 0);
// Location 1 : Texture coordinates // Location 1 : Texture coordinates
vertices.attributeDescriptions[1] = vertices.attributeDescriptions[1] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
1, 1,
VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R32G32_SFLOAT,
sizeof(float) * 3); sizeof(float) * 3);

View file

@ -18,7 +18,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#define VERTEX_BUFFER_BIND_ID 0
#define OBJECT_INSTANCES 125 #define OBJECT_INSTANCES 125
// Vertex layout for this example // Vertex layout for this example
@ -146,7 +145,7 @@ public:
vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline);
VkDeviceSize offsets[1] = { 0 }; VkDeviceSize offsets[1] = { 0 };
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &vertexBuffer.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &vertexBuffer.buffer, offsets);
vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32); vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32);
// Render multiple objects using different model matrices by dynamically offsetting into one uniform buffer // Render multiple objects using different model matrices by dynamically offsetting into one uniform buffer
@ -260,11 +259,11 @@ public:
// Vertex bindings and attributes // Vertex bindings and attributes
VkVertexInputBindingDescription vertexInputBinding = { VkVertexInputBindingDescription vertexInputBinding = {
vks::initializers::vertexInputBindingDescription(VERTEX_BUFFER_BIND_ID, sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX) vks::initializers::vertexInputBindingDescription(0, sizeof(Vertex), VK_VERTEX_INPUT_RATE_VERTEX)
}; };
std::vector<VkVertexInputAttributeDescription> vertexInputAttributes = { std::vector<VkVertexInputAttributeDescription> vertexInputAttributes = {
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, pos)), // Location 0 : Position vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, pos)), // Location 0 : Position
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, color)), // Location 1 : Color vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, offsetof(Vertex, color)), // Location 1 : Color
}; };
VkPipelineVertexInputStateCreateInfo vertexInputStateCI = vks::initializers::pipelineVertexInputStateCreateInfo(); VkPipelineVertexInputStateCreateInfo vertexInputStateCI = vks::initializers::pipelineVertexInputStateCreateInfo();
vertexInputStateCI.vertexBindingDescriptionCount = 1; vertexInputStateCI.vertexBindingDescriptionCount = 1;

View file

@ -9,8 +9,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#include "VulkanglTFModel.h" #include "VulkanglTFModel.h"
#define VERTEX_BUFFER_BIND_ID 0
class VulkanExample : public VulkanExampleBase class VulkanExample : public VulkanExampleBase
{ {
public: public:

View file

@ -9,8 +9,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#include "VulkanglTFModel.h" #include "VulkanglTFModel.h"
#define VERTEX_BUFFER_BIND_ID 0
#define INSTANCE_BUFFER_BIND_ID 1
#if defined(__ANDROID__) #if defined(__ANDROID__)
#define INSTANCE_COUNT 4096 #define INSTANCE_COUNT 4096
#else #else
@ -148,9 +146,9 @@ public:
vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, 0, 1, &descriptorSets.instancedRocks, 0, NULL); vkCmdBindDescriptorSets(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout, 0, 1, &descriptorSets.instancedRocks, 0, NULL);
vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.instancedRocks); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.instancedRocks);
// Binding point 0 : Mesh vertex buffer // Binding point 0 : Mesh vertex buffer
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &models.rock.vertices.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &models.rock.vertices.buffer, offsets);
// Binding point 1 : Instance data buffer // Binding point 1 : Instance data buffer
vkCmdBindVertexBuffers(drawCmdBuffers[i], INSTANCE_BUFFER_BIND_ID, 1, &instanceBuffer.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 1, 1, &instanceBuffer.buffer, offsets);
// Bind index buffer // Bind index buffer
vkCmdBindIndexBuffer(drawCmdBuffers[i], models.rock.indices.buffer, 0, VK_INDEX_TYPE_UINT32); vkCmdBindIndexBuffer(drawCmdBuffers[i], models.rock.indices.buffer, 0, VK_INDEX_TYPE_UINT32);
@ -260,9 +258,9 @@ public:
// The instancing pipeline uses a vertex input state with two bindings // The instancing pipeline uses a vertex input state with two bindings
bindingDescriptions = { bindingDescriptions = {
// Binding point 0: Mesh vertex layout description at per-vertex rate // Binding point 0: Mesh vertex layout description at per-vertex rate
vks::initializers::vertexInputBindingDescription(VERTEX_BUFFER_BIND_ID, sizeof(vkglTF::Vertex), VK_VERTEX_INPUT_RATE_VERTEX), vks::initializers::vertexInputBindingDescription(0, sizeof(vkglTF::Vertex), VK_VERTEX_INPUT_RATE_VERTEX),
// Binding point 1: Instanced data at per-instance rate // Binding point 1: Instanced data at per-instance rate
vks::initializers::vertexInputBindingDescription(INSTANCE_BUFFER_BIND_ID, sizeof(InstanceData), VK_VERTEX_INPUT_RATE_INSTANCE) vks::initializers::vertexInputBindingDescription(1, sizeof(InstanceData), VK_VERTEX_INPUT_RATE_INSTANCE)
}; };
// Vertex attribute bindings // Vertex attribute bindings
@ -274,16 +272,16 @@ public:
attributeDescriptions = { attributeDescriptions = {
// Per-vertex attributes // Per-vertex attributes
// These are advanced for each vertex fetched by the vertex shader // These are advanced for each vertex fetched by the vertex shader
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position vks::initializers::vertexInputAttributeDescription(0, 0, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 0: Position
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal vks::initializers::vertexInputAttributeDescription(0, 1, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 1: Normal
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates vks::initializers::vertexInputAttributeDescription(0, 2, VK_FORMAT_R32G32_SFLOAT, sizeof(float) * 6), // Location 2: Texture coordinates
vks::initializers::vertexInputAttributeDescription(VERTEX_BUFFER_BIND_ID, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color vks::initializers::vertexInputAttributeDescription(0, 3, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 8), // Location 3: Color
// Per-Instance attributes // Per-Instance attributes
// These are advanced for each instance rendered // These are advanced for each instance rendered
vks::initializers::vertexInputAttributeDescription(INSTANCE_BUFFER_BIND_ID, 4, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 4: Position vks::initializers::vertexInputAttributeDescription(1, 4, VK_FORMAT_R32G32B32_SFLOAT, 0), // Location 4: Position
vks::initializers::vertexInputAttributeDescription(INSTANCE_BUFFER_BIND_ID, 5, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 5: Rotation vks::initializers::vertexInputAttributeDescription(1, 5, VK_FORMAT_R32G32B32_SFLOAT, sizeof(float) * 3), // Location 5: Rotation
vks::initializers::vertexInputAttributeDescription(INSTANCE_BUFFER_BIND_ID, 6, VK_FORMAT_R32_SFLOAT,sizeof(float) * 6), // Location 6: Scale vks::initializers::vertexInputAttributeDescription(1, 6, VK_FORMAT_R32_SFLOAT,sizeof(float) * 6), // Location 6: Scale
vks::initializers::vertexInputAttributeDescription(INSTANCE_BUFFER_BIND_ID, 7, VK_FORMAT_R32_SINT, sizeof(float) * 7), // Location 7: Texture array layer index vks::initializers::vertexInputAttributeDescription(1, 7, VK_FORMAT_R32_SINT, sizeof(float) * 7), // Location 7: Texture array layer index
}; };
inputState.pVertexBindingDescriptions = bindingDescriptions.data(); inputState.pVertexBindingDescriptions = bindingDescriptions.data();
inputState.pVertexAttributeDescriptions = attributeDescriptions.data(); inputState.pVertexAttributeDescriptions = attributeDescriptions.data();

View file

@ -9,7 +9,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#include "VulkanglTFModel.h" #include "VulkanglTFModel.h"
#define VERTEX_BUFFER_BIND_ID 0
class VulkanExample : public VulkanExampleBase class VulkanExample : public VulkanExampleBase
{ {
public: public:

View file

@ -13,7 +13,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#include "VulkanglTFModel.h" #include "VulkanglTFModel.h"
#define VERTEX_BUFFER_BIND_ID 0
class VulkanExample : public VulkanExampleBase class VulkanExample : public VulkanExampleBase
{ {
public: public:

View file

@ -10,7 +10,6 @@
#include <ktx.h> #include <ktx.h>
#include <ktxvulkan.h> #include <ktxvulkan.h>
#define VERTEX_BUFFER_BIND_ID 0
// Vertex layout for this example // Vertex layout for this example
struct Vertex { struct Vertex {
float pos[3]; float pos[3];
@ -485,7 +484,7 @@ public:
vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.solid); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.solid);
VkDeviceSize offsets[1] = { 0 }; VkDeviceSize offsets[1] = { 0 };
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &vertexBuffer.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &vertexBuffer.buffer, offsets);
vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32); vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32);
vkCmdDrawIndexed(drawCmdBuffers[i], indexCount, 1, 0, 0, 0); vkCmdDrawIndexed(drawCmdBuffers[i], indexCount, 1, 0, 0, 0);
@ -551,7 +550,7 @@ public:
vertices.bindingDescriptions.resize(1); vertices.bindingDescriptions.resize(1);
vertices.bindingDescriptions[0] = vertices.bindingDescriptions[0] =
vks::initializers::vertexInputBindingDescription( vks::initializers::vertexInputBindingDescription(
VERTEX_BUFFER_BIND_ID, 0,
sizeof(Vertex), sizeof(Vertex),
VK_VERTEX_INPUT_RATE_VERTEX); VK_VERTEX_INPUT_RATE_VERTEX);
@ -561,21 +560,21 @@ public:
// Location 0 : Position // Location 0 : Position
vertices.attributeDescriptions[0] = vertices.attributeDescriptions[0] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
0, 0,
VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SFLOAT,
offsetof(Vertex, pos)); offsetof(Vertex, pos));
// Location 1 : Texture coordinates // Location 1 : Texture coordinates
vertices.attributeDescriptions[1] = vertices.attributeDescriptions[1] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
1, 1,
VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R32G32_SFLOAT,
offsetof(Vertex, uv)); offsetof(Vertex, uv));
// Location 1 : Vertex normal // Location 1 : Vertex normal
vertices.attributeDescriptions[2] = vertices.attributeDescriptions[2] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
2, 2,
VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SFLOAT,
offsetof(Vertex, normal)); offsetof(Vertex, normal));

View file

@ -8,7 +8,6 @@
#include "vulkanexamplebase.h" #include "vulkanexamplebase.h"
#define VERTEX_BUFFER_BIND_ID 0
// Vertex layout for this example // Vertex layout for this example
struct Vertex { struct Vertex {
float pos[3]; float pos[3];
@ -461,7 +460,7 @@ public:
vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.solid); vkCmdBindPipeline(drawCmdBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, pipelines.solid);
VkDeviceSize offsets[1] = { 0 }; VkDeviceSize offsets[1] = { 0 };
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &vertexBuffer.buffer, offsets); vkCmdBindVertexBuffers(drawCmdBuffers[i], 0, 1, &vertexBuffer.buffer, offsets);
vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32); vkCmdBindIndexBuffer(drawCmdBuffers[i], indexBuffer.buffer, 0, VK_INDEX_TYPE_UINT32);
vkCmdDrawIndexed(drawCmdBuffers[i], indexCount, 1, 0, 0, 0); vkCmdDrawIndexed(drawCmdBuffers[i], indexCount, 1, 0, 0, 0);
@ -526,7 +525,7 @@ public:
vertices.inputBinding.resize(1); vertices.inputBinding.resize(1);
vertices.inputBinding[0] = vertices.inputBinding[0] =
vks::initializers::vertexInputBindingDescription( vks::initializers::vertexInputBindingDescription(
VERTEX_BUFFER_BIND_ID, 0,
sizeof(Vertex), sizeof(Vertex),
VK_VERTEX_INPUT_RATE_VERTEX); VK_VERTEX_INPUT_RATE_VERTEX);
@ -536,21 +535,21 @@ public:
// Location 0 : Position // Location 0 : Position
vertices.inputAttributes[0] = vertices.inputAttributes[0] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
0, 0,
VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SFLOAT,
offsetof(Vertex, pos)); offsetof(Vertex, pos));
// Location 1 : Texture coordinates // Location 1 : Texture coordinates
vertices.inputAttributes[1] = vertices.inputAttributes[1] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
1, 1,
VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R32G32_SFLOAT,
offsetof(Vertex, uv)); offsetof(Vertex, uv));
// Location 1 : Vertex normal // Location 1 : Vertex normal
vertices.inputAttributes[2] = vertices.inputAttributes[2] =
vks::initializers::vertexInputAttributeDescription( vks::initializers::vertexInputAttributeDescription(
VERTEX_BUFFER_BIND_ID, 0,
2, 2,
VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32_SFLOAT,
offsetof(Vertex, normal)); offsetof(Vertex, normal));