turnip: fix invalid VK_ERROR_OUT_OF_POOL_MEMORY

When VK_DESCRIPTOR_TYPE_SAMPLER is provided, it doesn't need to be
counted as a buffer count. Otherwise it leads to mismatch of allocated
buffer size, hitting VK_ERROR_OUT_OF_POOL_MEMORY finally.

Fixes: c39afe68f0

Also fixes amber tests:
./tests/cases/address_modes_float.amber
./tests/cases/address_modes_int.amber
./tests/cases/magfilter_linear.amber
./tests/cases/magfilter_nearest.amber

Reviewed-by: Jonathan Marek <jonathan@marek.ca>
This commit is contained in:
Hyunjun Ko 2020-01-17 07:23:03 +00:00 committed by Eduardo Lima Mitev
parent 87e1f8eca5
commit 26d93a7495

View file

@ -172,6 +172,9 @@ tu_CreateDescriptorSetLayout(
unsigned binding_buffer_count = 1;
switch (binding->descriptorType) {
case VK_DESCRIPTOR_TYPE_SAMPLER:
binding_buffer_count = 0;
break;
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
assert(!(pCreateInfo->flags & VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR));