Fidex wrong offscreen uniform buffer size assignment, added pre present barrier. Now also works on AMD GPUs

This commit is contained in:
saschawillems 2016-03-01 19:33:48 +01:00
parent 230a693401
commit 7e8365630e

View file

@ -27,7 +27,7 @@
#define VERTEX_BUFFER_BIND_ID 0 #define VERTEX_BUFFER_BIND_ID 0
//#define USE_GLSL //#define USE_GLSL
#define ENABLE_VALIDATION true #define ENABLE_VALIDATION false
// 16 bits of depth is enough for such a small scene // 16 bits of depth is enough for such a small scene
#define DEPTH_FORMAT VK_FORMAT_D16_UNORM #define DEPTH_FORMAT VK_FORMAT_D16_UNORM
@ -552,6 +552,8 @@ public:
err = vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE); err = vkQueueSubmit(queue, 1, &submitInfo, VK_NULL_HANDLE);
assert(!err); assert(!err);
submitPrePresentBarrier(swapChain.buffers[currentBuffer].image);
err = swapChain.queuePresent(queue, currentBuffer); err = swapChain.queuePresent(queue, currentBuffer);
assert(!err); assert(!err);
@ -560,13 +562,12 @@ public:
submitPostPresentBarrier(swapChain.buffers[currentBuffer].image); submitPostPresentBarrier(swapChain.buffers[currentBuffer].image);
err = vkQueueWaitIdle(queue); err = vkQueueWaitIdle(queue);
assert(err == VK_SUCCESS); assert(!err);
} }
void loadMeshes() void loadMeshes()
{ {
loadMesh("./../data/models/vulkanscene_shadow.dae", &meshes.scene, vertexLayout, 4.0f); loadMesh("./../data/models/vulkanscene_shadow.dae", &meshes.scene, vertexLayout, 4.0f);
// demoMesh->LoadMesh("./../data/models/shadowscene_torus.x")
} }
void generateQuad() void generateQuad()
@ -736,7 +737,7 @@ public:
{ {
// Binding 0 : Vertex shader uniform buffer // Binding 0 : Vertex shader uniform buffer
vkTools::initializers::writeDescriptorSet( vkTools::initializers::writeDescriptorSet(
descriptorSet, descriptorSet,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
0, 0,
&uniformDataVS.descriptor), &uniformDataVS.descriptor),
@ -758,7 +759,7 @@ public:
{ {
// Binding 0 : Vertex shader uniform buffer // Binding 0 : Vertex shader uniform buffer
vkTools::initializers::writeDescriptorSet( vkTools::initializers::writeDescriptorSet(
descriptorSets.offscreen, descriptorSets.offscreen,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
0, 0,
&uniformDataOffscreenVS.descriptor), &uniformDataOffscreenVS.descriptor),
@ -932,7 +933,7 @@ public:
// Offsvreen vertex shader uniform buffer block // Offsvreen vertex shader uniform buffer block
createBuffer( createBuffer(
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
sizeof(uniformDataOffscreenVS), sizeof(uboOffscreenVS),
nullptr, nullptr,
&uniformDataOffscreenVS.buffer, &uniformDataOffscreenVS.buffer,
&uniformDataOffscreenVS.memory, &uniformDataOffscreenVS.memory,