vulkan: Consistent naming scheme for resources in XGL
Bug 13230
header: 0.78.0
includes review feedback.
v2: replace VK_FORMAT_IMAGE_COPY_BIT by VK_FORMAT_COLOR_ATTACHMENT_BIT for now
(olv)
diff --git a/demos/cube.c b/demos/cube.c
index 2fcc207..c5250a9 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -351,12 +351,12 @@
if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL) {
/* Make sure anything that was copying from this image has completed */
- image_memory_barrier.inputMask = VK_MEMORY_INPUT_COPY_BIT;
+ image_memory_barrier.inputMask = VK_MEMORY_INPUT_TRANSFER_BIT;
}
if (new_image_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) {
/* Make sure any Copy or CPU writes to image are flushed */
- image_memory_barrier.outputMask = VK_MEMORY_OUTPUT_COPY_BIT | VK_MEMORY_OUTPUT_CPU_WRITE_BIT;
+ image_memory_barrier.outputMask = VK_MEMORY_OUTPUT_CPU_WRITE_BIT | VK_MEMORY_OUTPUT_TRANSFER_BIT;
}
VkImageMemoryBarrier *pmemory_barrier = &image_memory_barrier;
@@ -990,11 +990,11 @@
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
- if (props.linearTilingFeatures & VK_FORMAT_IMAGE_SHADER_READ_BIT && !demo->use_staging_buffer) {
+ if (props.linearTilingFeatures & VK_FORMAT_SAMPLED_IMAGE_BIT && !demo->use_staging_buffer) {
/* Device can texture using linear textures */
demo_prepare_texture_image(demo, tex_files[i], &demo->textures[i],
VK_LINEAR_TILING, VK_MEMORY_PROPERTY_CPU_VISIBLE_BIT);
- } else if (props.optimalTilingFeatures & VK_FORMAT_IMAGE_SHADER_READ_BIT) {
+ } else if (props.optimalTilingFeatures & VK_FORMAT_SAMPLED_IMAGE_BIT) {
/* Must use staging buffer to copy linear texture to optimized */
struct texture_object staging_texture;
@@ -1132,7 +1132,7 @@
memset(&buf_info, 0, sizeof(buf_info));
buf_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
buf_info.size = sizeof(data);
- buf_info.usage = VK_BUFFER_USAGE_UNIFORM_READ_BIT;
+ buf_info.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
err = vkCreateBuffer(demo->device, &buf_info, &demo->uniform_data.buf);
assert(!err);
@@ -1196,7 +1196,7 @@
.pImmutableSamplers = NULL,
},
[1] = {
- .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
+ .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
.count = DEMO_TEXTURE_COUNT,
.stageFlags = VK_SHADER_STAGE_FLAGS_FRAGMENT_BIT,
.pImmutableSamplers = NULL,
@@ -1508,7 +1508,7 @@
.count = 1,
},
[1] = {
- .type = VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
+ .type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
.count = DEMO_TEXTURE_COUNT,
},
};
diff --git a/demos/tri.c b/demos/tri.c
index 005532d..671c1bb 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -179,12 +179,12 @@
if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL) {
/* Make sure anything that was copying from this image has completed */
- image_memory_barrier.inputMask = VK_MEMORY_INPUT_COPY_BIT;
+ image_memory_barrier.inputMask = VK_MEMORY_INPUT_TRANSFER_BIT;
}
if (new_image_layout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) {
/* Make sure any Copy or CPU writes to image are flushed */
- image_memory_barrier.outputMask = VK_MEMORY_OUTPUT_COPY_BIT | VK_MEMORY_OUTPUT_CPU_WRITE_BIT;
+ image_memory_barrier.outputMask = VK_MEMORY_OUTPUT_TRANSFER_BIT | VK_MEMORY_OUTPUT_CPU_WRITE_BIT;
}
VkImageMemoryBarrier *pmemory_barrier = &image_memory_barrier;
@@ -633,11 +633,11 @@
assert(!err);
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
- if ((props.linearTilingFeatures & VK_FORMAT_IMAGE_SHADER_READ_BIT) && !demo->use_staging_buffer) {
+ if ((props.linearTilingFeatures & VK_FORMAT_SAMPLED_IMAGE_BIT) && !demo->use_staging_buffer) {
/* Device can texture using linear textures */
demo_prepare_texture_image(demo, tex_colors[i], &demo->textures[i],
VK_LINEAR_TILING, VK_MEMORY_PROPERTY_CPU_VISIBLE_BIT);
- } else if (props.optimalTilingFeatures & VK_FORMAT_IMAGE_SHADER_READ_BIT){
+ } else if (props.optimalTilingFeatures & VK_FORMAT_SAMPLED_IMAGE_BIT){
/* Must use staging buffer to copy linear texture to optimized */
struct texture_object staging_texture;
@@ -739,7 +739,7 @@
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = NULL,
.size = sizeof(vb),
- .usage = VK_BUFFER_USAGE_VERTEX_FETCH_BIT,
+ .usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
.flags = 0,
};
VkMemoryAllocBufferInfo buf_alloc = {
@@ -829,7 +829,7 @@
static void demo_prepare_descriptor_layout(struct demo *demo)
{
const VkDescriptorSetLayoutBinding layout_binding = {
- .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
+ .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
.count = DEMO_TEXTURE_COUNT,
.stageFlags = VK_SHADER_STAGE_FLAGS_FRAGMENT_BIT,
.pImmutableSamplers = NULL,
@@ -1078,7 +1078,7 @@
static void demo_prepare_descriptor_pool(struct demo *demo)
{
const VkDescriptorTypeCount type_count = {
- .type = VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
+ .type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
.count = DEMO_TEXTURE_COUNT,
};
const VkDescriptorPoolCreateInfo descriptor_pool = {
diff --git a/demos/vulkaninfo.c b/demos/vulkaninfo.c
index 47edf53..01d7745 100644
--- a/demos/vulkaninfo.c
+++ b/demos/vulkaninfo.c
@@ -487,17 +487,19 @@
continue;
printf("\t%s tiling image =%s%s%s\n", tilings[i].name,
- (tilings[i].flags & VK_FORMAT_IMAGE_SHADER_READ_BIT) ? " read" : "",
- (tilings[i].flags & VK_FORMAT_IMAGE_SHADER_WRITE_BIT) ? " write" : "",
- (tilings[i].flags & VK_FORMAT_IMAGE_COPY_BIT) ? " copy" : "");
- printf("\t%s tiling memory =%s\n", tilings[i].name,
- (tilings[i].flags & VK_FORMAT_MEMORY_SHADER_ACCESS_BIT) ? " access" : "");
- printf("\t%s tiling attachment =%s%s%s%s%s\n", tilings[i].name,
- (tilings[i].flags & VK_FORMAT_COLOR_ATTACHMENT_WRITE_BIT) ? " color" : "",
+ (tilings[i].flags & VK_FORMAT_SAMPLED_IMAGE_BIT) ? " sampled" : "",
+ (tilings[i].flags & VK_FORMAT_STORAGE_IMAGE_BIT) ? " storage" : "",
+ (tilings[i].flags & VK_FORMAT_STORAGE_IMAGE_ATOMIC_BIT) ? " atomic" : "");
+ printf("\t%s tiling texel =%s%s%s\n", tilings[i].name,
+ (tilings[i].flags & VK_FORMAT_UNIFORM_TEXEL_BUFFER_BIT) ? " TBO" : "",
+ (tilings[i].flags & VK_FORMAT_STORAGE_TEXEL_BUFFER_BIT) ? " IBO" : "",
+ (tilings[i].flags & VK_FORMAT_STORAGE_TEXEL_BUFFER_ATOMIC_BIT) ? " atomic" : "");
+ printf("\t%s tiling attachment =%s%s%s\n", tilings[i].name,
+ (tilings[i].flags & VK_FORMAT_COLOR_ATTACHMENT_BIT) ? " color" : "",
(tilings[i].flags & VK_FORMAT_COLOR_ATTACHMENT_BLEND_BIT) ? " blend" : "",
- (tilings[i].flags & VK_FORMAT_DEPTH_ATTACHMENT_BIT) ? " depth" : "",
- (tilings[i].flags & VK_FORMAT_STENCIL_ATTACHMENT_BIT) ? " stencil" : "",
- (tilings[i].flags & VK_FORMAT_MSAA_ATTACHMENT_BIT) ? " msaa" : "");
+ (tilings[i].flags & VK_FORMAT_DEPTH_STENCIL_ATTACHMENT_BIT) ? " depth/stencil" : "");
+ printf("\t%s tiling vertex = %u\n", tilings[i].name,
+ (bool) (tilings[i].flags & VK_FORMAT_VERTEX_BUFFER_BIT));
printf("\t%s tiling conversion = %u\n", tilings[i].name,
(bool) (tilings[i].flags & VK_FORMAT_CONVERSION_BIT));
}
diff --git a/icd/intel/buf.c b/icd/intel/buf.c
index b670b7c..291e298 100644
--- a/icd/intel/buf.c
+++ b/icd/intel/buf.c
@@ -60,8 +60,10 @@
* bytes added beyond that to account for the L1 cache line."
*/
mem_req->size = buf->size;
- if (buf->usage & VK_BUFFER_USAGE_SHADER_ACCESS_READ_BIT)
+ if (buf->usage & (VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT |
+ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT)) {
mem_req->size = u_align(mem_req->size, 256) + 16;
+ }
mem_req->alignment = 4096;
mem_req->memType = VK_MEMORY_TYPE_BUFFER;
diff --git a/icd/intel/cmd_barrier.c b/icd/intel/cmd_barrier.c
index e1eb1e1..93f7d33 100644
--- a/icd/intel/cmd_barrier.c
+++ b/icd/intel/cmd_barrier.c
@@ -244,7 +244,7 @@
}
/* CPU write is cache coherent, so VK_MEMORY_OUTPUT_CPU_WRITE_BIT needs no flush. */
- /* Meta handles flushes, so VK_MEMORY_OUTPUT_COPY_BIT needs no flush. */
+ /* Meta handles flushes, so VK_MEMORY_OUTPUT_TRANSFER_BIT needs no flush. */
if (input_mask & (VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_UNIFORM_READ_BIT)) {
flush_flags |= GEN6_PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE;
@@ -264,7 +264,7 @@
* VK_MEMORY_INPUT_INDEX_FETCH_BIT
* VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT
* VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT
- * VK_MEMORY_INPUT_COPY_BIT
+ * VK_MEMORY_INPUT_TRANSFER_BIT
*/
cmd_batch_flush(cmd, flush_flags);
diff --git a/icd/intel/cmd_meta.c b/icd/intel/cmd_meta.c
index 4037585..f1b362e 100644
--- a/icd/intel/cmd_meta.c
+++ b/icd/intel/cmd_meta.c
@@ -43,7 +43,7 @@
memset(&info, 0, sizeof(info));
info.sType = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
info.buffer = buf;
- info.viewType = VK_BUFFER_VIEW_TYPED;
+ info.viewType = VK_BUFFER_VIEW_FORMATTED;
info.format = format;
info.range = range;
diff --git a/icd/intel/desc.c b/icd/intel/desc.c
index d599d96..66a2ea7 100644
--- a/icd/intel/desc.c
+++ b/icd/intel/desc.c
@@ -180,18 +180,18 @@
case VK_DESCRIPTOR_TYPE_SAMPLER:
sampler_size = region->sampler_desc_size;
break;
- case VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE:
+ case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
surface_size = region->surface_desc_size;
sampler_size = region->sampler_desc_size;
break;
- case VK_DESCRIPTOR_TYPE_TEXTURE:
- case VK_DESCRIPTOR_TYPE_TEXTURE_BUFFER:
- case VK_DESCRIPTOR_TYPE_IMAGE:
- case VK_DESCRIPTOR_TYPE_IMAGE_BUFFER:
+ case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
+ case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
+ case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
+ case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:
- case VK_DESCRIPTOR_TYPE_SHADER_STORAGE_BUFFER:
+ case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
- case VK_DESCRIPTOR_TYPE_SHADER_STORAGE_BUFFER_DYNAMIC:
+ case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
surface_size = region->surface_desc_size;
break;
default:
@@ -559,7 +559,7 @@
const struct intel_desc_layout_binding *binding;
uint32_t i;
- if (!desc_iter_init_for_update(&iter, set, VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE,
+ if (!desc_iter_init_for_update(&iter, set, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
update->binding, update->arrayIndex))
return;
@@ -667,7 +667,7 @@
uint32_t i;
/* disallow combined sampler textures */
- if (update->descriptorType == VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE)
+ if (update->descriptorType == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
return;
if (!desc_iter_init_for_update(&iter, set, update->descriptorType,
@@ -726,7 +726,7 @@
switch (lb->descriptorType) {
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
- case VK_DESCRIPTOR_TYPE_SHADER_STORAGE_BUFFER_DYNAMIC:
+ case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
layout->dynamic_desc_count += lb->count;
break;
default:
diff --git a/icd/intel/format.c b/icd/intel/format.c
index 032cdd2..9f40cf3 100644
--- a/icd/intel/format.c
+++ b/icd/intel/format.c
@@ -577,7 +577,7 @@
vf = (fmt < ARRAY_SIZE(intel_vf_caps)) ? &intel_vf_caps[fmt] : NULL;
dp = (fmt < ARRAY_SIZE(intel_dp_caps)) ? &intel_dp_caps[fmt] : NULL;
- features = VK_FORMAT_MEMORY_SHADER_ACCESS_BIT;
+ features = VK_FORMAT_STORAGE_IMAGE_BIT;
#define TEST(dev, func, cap) ((func) && (func)->cap && \
intel_gpu_gen((dev)->gpu) >= (func)->cap)
@@ -588,20 +588,20 @@
if (TEST(dev, sampler, sampling)) {
if (icd_format_is_int(format) ||
TEST(dev, sampler, filtering))
- features |= VK_FORMAT_IMAGE_SHADER_READ_BIT;
+ features |= VK_FORMAT_SAMPLED_IMAGE_BIT;
}
if (TEST(dev, dp, typed_write))
- features |= VK_FORMAT_IMAGE_SHADER_WRITE_BIT;
+ features |= VK_FORMAT_SAMPLED_IMAGE_BIT;
if (TEST(dev, dp, rt_write)) {
- features |= VK_FORMAT_COLOR_ATTACHMENT_WRITE_BIT;
+ features |= VK_FORMAT_COLOR_ATTACHMENT_BIT;
if (TEST(dev, dp, rt_write_blending))
features |= VK_FORMAT_COLOR_ATTACHMENT_BLEND_BIT;
- if (features & VK_FORMAT_IMAGE_SHADER_READ_BIT) {
- features |= VK_FORMAT_IMAGE_COPY_BIT |
+ if (features & VK_FORMAT_SAMPLED_IMAGE_BIT) {
+ features |= VK_FORMAT_SAMPLED_IMAGE_BIT |
VK_FORMAT_CONVERSION_BIT;
}
}
@@ -619,18 +619,18 @@
switch (format) {
case VK_FMT_S8_UINT:
- features = VK_FORMAT_STENCIL_ATTACHMENT_BIT;;
+ features = VK_FORMAT_DEPTH_STENCIL_ATTACHMENT_BIT;;
break;
case VK_FMT_D16_UNORM:
case VK_FMT_D24_UNORM:
case VK_FMT_D32_SFLOAT:
- features = VK_FORMAT_DEPTH_ATTACHMENT_BIT;
+ features = VK_FORMAT_DEPTH_STENCIL_ATTACHMENT_BIT;
break;
case VK_FMT_D16_UNORM_S8_UINT:
case VK_FMT_D24_UNORM_S8_UINT:
case VK_FMT_D32_SFLOAT_S8_UINT:
- features = VK_FORMAT_DEPTH_ATTACHMENT_BIT |
- VK_FORMAT_STENCIL_ATTACHMENT_BIT;
+ features = VK_FORMAT_DEPTH_STENCIL_ATTACHMENT_BIT |
+ VK_FORMAT_DEPTH_STENCIL_ATTACHMENT_BIT;
break;
default:
features = 0;
@@ -644,7 +644,7 @@
VkFormat format)
{
return (format == VK_FMT_UNDEFINED) ?
- VK_FORMAT_MEMORY_SHADER_ACCESS_BIT : 0;
+ VK_FORMAT_STORAGE_IMAGE_BIT : 0;
}
static void intel_format_get_props(const struct intel_dev *dev,
diff --git a/icd/intel/img.c b/icd/intel/img.c
index 8850b01..76e499a 100644
--- a/icd/intel/img.c
+++ b/icd/intel/img.c
@@ -155,7 +155,7 @@
s8_info = *info;
s8_info.format = VK_FMT_S8_UINT;
/* no stencil texturing */
- s8_info.usage &= ~VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT;
+ s8_info.usage &= ~VK_IMAGE_USAGE_SAMPLED_BIT;
assert(icd_format_is_ds(info->format));
intel_layout_init(img->s8_layout, dev, &s8_info, scanout);
diff --git a/icd/intel/layout.c b/icd/intel/layout.c
index 67df8a9..dbc5e14 100644
--- a/icd/intel/layout.c
+++ b/icd/intel/layout.c
@@ -534,7 +534,7 @@
valid_tilings &= ~LAYOUT_TILING_W;
}
- if (info->usage & VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT) {
+ if (info->usage & VK_IMAGE_USAGE_SAMPLED_BIT) {
if (intel_gpu_gen(params->gpu) < INTEL_GEN(8))
valid_tilings &= ~LAYOUT_TILING_W;
}
@@ -561,7 +561,7 @@
preferred_tilings &= ~LAYOUT_TILING_W;
if (info->usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
- VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT)) {
+ VK_IMAGE_USAGE_SAMPLED_BIT)) {
/*
* heuristically set a minimum width/height for enabling tiling
*/
@@ -844,7 +844,7 @@
* padding purposes. The value of 4 for j still applies for mip level
* alignment and QPitch calculation."
*/
- if (info->usage & VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT) {
+ if (info->usage & VK_IMAGE_USAGE_SAMPLED_BIT) {
if (align_w < layout->align_i)
align_w = layout->align_i;
if (align_h < layout->align_j)
@@ -911,7 +911,7 @@
* required above."
*/
if (intel_gpu_gen(params->gpu) >= INTEL_GEN(7.5) &&
- (params->info->usage & VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT) &&
+ (params->info->usage & VK_IMAGE_USAGE_SAMPLED_BIT) &&
layout->tiling == GEN6_TILING_NONE)
h += (64 + layout->bo_stride - 1) / layout->bo_stride;
diff --git a/icd/intel/view.c b/icd/intel/view.c
index f74ae20..ea6dc14 100644
--- a/icd/intel/view.c
+++ b/icd/intel/view.c
@@ -1070,9 +1070,9 @@
struct intel_buf_view **view_ret)
{
struct intel_buf *buf = intel_buf(info->buffer);
- const bool will_write = (buf->usage |
- (VK_BUFFER_USAGE_SHADER_ACCESS_WRITE_BIT &
- VK_BUFFER_USAGE_SHADER_ACCESS_ATOMIC_BIT));
+ /* TODO: Is transfer destination the only shader write operation? */
+ const bool will_write = (buf->usage & (VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT |
+ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT));
VkFormat format;
VkGpuSize stride;
uint32_t *cmd;
diff --git a/include/vulkan.h b/include/vulkan.h
index 0c85cb1..a7a33f7 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -33,7 +33,7 @@
#include "vk_platform.h"
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 72, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 78, 0)
#ifdef __cplusplus
extern "C"
@@ -176,7 +176,7 @@
VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002, // Controls output coherency of generic shader writes
VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004, // Controls output coherency of color attachment writes
VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008, // Controls output coherency of depth/stencil attachment writes
- VK_MEMORY_OUTPUT_COPY_BIT = 0x00000010, // Controls output coherency of copy operations
+ VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010, // Controls output coherency of transfer operations
VK_MAX_ENUM(VkMemoryOutputFlags)
} VkMemoryOutputFlags;
@@ -190,7 +190,7 @@
VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020, // Controls input coherency of generic shader reads
VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040, // Controls input coherency of color attachment reads
VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080, // Controls input coherency of depth/stencil attachment reads
- VK_MEMORY_INPUT_COPY_BIT = 0x00000100, // Controls input coherency of copy operations
+ VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000100, // Controls input coherency of transfer operations
VK_MAX_ENUM(VkMemoryInputFlags)
} VkMemoryInputFlags;
@@ -284,18 +284,18 @@
typedef enum VkDescriptorType_
{
VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
- VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE = 0x00000001,
- VK_DESCRIPTOR_TYPE_TEXTURE = 0x00000002,
- VK_DESCRIPTOR_TYPE_TEXTURE_BUFFER = 0x00000003,
- VK_DESCRIPTOR_TYPE_IMAGE = 0x00000004,
- VK_DESCRIPTOR_TYPE_IMAGE_BUFFER = 0x00000005,
+ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
+ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
+ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
+ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
+ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
- VK_DESCRIPTOR_TYPE_SHADER_STORAGE_BUFFER = 0x00000007,
+ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
- VK_DESCRIPTOR_TYPE_SHADER_STORAGE_BUFFER_DYNAMIC = 0x00000009,
+ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
- VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_SHADER_STORAGE_BUFFER_DYNAMIC,
+ VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
VK_NUM_DESCRIPTOR_TYPE = (VK_DESCRIPTOR_TYPE_END_RANGE - VK_DESCRIPTOR_TYPE_BEGIN_RANGE + 1),
VK_MAX_ENUM(VkDescriptorType)
} VkDescriptorType;
@@ -1125,19 +1125,16 @@
// Buffer and buffer allocation usage flags
typedef enum VkBufferUsageFlags_
{
- VK_BUFFER_USAGE_GENERAL = 0x00000000, // no special usage
- VK_BUFFER_USAGE_SHADER_ACCESS_READ_BIT = 0x00000001, // Shader read (e.g. TBO, image buffer, UBO, SSBO)
- VK_BUFFER_USAGE_SHADER_ACCESS_WRITE_BIT = 0x00000002, // Shader write (e.g. image buffer, SSBO)
- VK_BUFFER_USAGE_SHADER_ACCESS_ATOMIC_BIT = 0x00000004, // Shader atomic operations (e.g. image buffer, SSBO)
- VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000008, // used as a source for copies
- VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000010, // used as a destination for copies
- VK_BUFFER_USAGE_UNIFORM_READ_BIT = 0x00000020, // Uniform read (UBO)
- VK_BUFFER_USAGE_INDEX_FETCH_BIT = 0x00000040, // Fixed function index fetch (index buffer)
- VK_BUFFER_USAGE_VERTEX_FETCH_BIT = 0x00000080, // Fixed function vertex fetch (VBO)
- VK_BUFFER_USAGE_SHADER_STORAGE_BIT = 0x00000100, // Shader storage buffer (SSBO)
- VK_BUFFER_USAGE_INDIRECT_PARAMETER_FETCH_BIT = 0x00000200, // Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
- VK_BUFFER_USAGE_TEXTURE_BUFFER_BIT = 0x00000400, // texture buffer (TBO)
- VK_BUFFER_USAGE_IMAGE_BUFFER_BIT = 0x00000800, // image buffer (load/store)
+ VK_BUFFER_USAGE_GENERAL = 0x00000000, // No special usage
+ VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000001, // Can be used as a source of transfer operations
+ VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002, // Can be used as a destination of transfer operations
+ VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, // Can be used as TBO
+ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, // Can be used as IBO
+ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, // Can be used as UBO
+ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, // Can be used as SSBO
+ VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, // Can be used as source of fixed function index fetch (index buffer)
+ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, // Can be used as source of fixed function vertex fetch (VBO)
+ VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, // Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
VK_MAX_ENUM(VkBufferUsageFlags)
} VkBufferUsageFlags;
@@ -1151,11 +1148,11 @@
typedef enum VkBufferViewType_
{
- VK_BUFFER_VIEW_RAW = 0x00000000, // Raw buffer without special structure (e.g. UBO, SSBO, indirect and parameter buffers)
- VK_BUFFER_VIEW_TYPED = 0x00000001, // Typed buffer, format and channels are used (TBO, image buffer)
+ VK_BUFFER_VIEW_RAW = 0x00000000, // Raw buffer without special structure (UBO, SSBO)
+ VK_BUFFER_VIEW_FORMATTED = 0x00000001, // Buffer with format (TBO, IBO)
VK_BUFFER_VIEW_TYPE_BEGIN_RANGE = VK_BUFFER_VIEW_RAW,
- VK_BUFFER_VIEW_TYPE_END_RANGE = VK_BUFFER_VIEW_TYPED,
+ VK_BUFFER_VIEW_TYPE_END_RANGE = VK_BUFFER_VIEW_FORMATTED,
VK_NUM_BUFFER_VIEW_TYPE = (VK_BUFFER_VIEW_TYPE_END_RANGE - VK_BUFFER_VIEW_TYPE_BEGIN_RANGE + 1),
VK_MAX_ENUM(VkBufferViewType)
} VkBufferViewType;
@@ -1193,16 +1190,13 @@
typedef enum VkImageUsageFlags_
{
VK_IMAGE_USAGE_GENERAL = 0x00000000, // no special usage
- VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT = 0x00000001, // shader read (e.g. texture, image)
- VK_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT = 0x00000002, // shader write (e.g. image)
- VK_IMAGE_USAGE_SHADER_ACCESS_ATOMIC_BIT = 0x00000004, // shader atomic operations (e.g. image)
- VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000008, // used as a source for copies
- VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000010, // used as a destination for copies
- VK_IMAGE_USAGE_TEXTURE_BIT = 0x00000020, // opaque texture (2d, 3d, etc.)
- VK_IMAGE_USAGE_IMAGE_BIT = 0x00000040, // opaque image (2d, 3d, etc.)
- VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000080, // framebuffer color attachment
- VK_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000100, // framebuffer depth/stencil
- VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000200, // image data not needed outside of rendering.
+ VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000001, // Can be used as a source of transfer operations
+ VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002, // Can be used as a destination of transfer operations
+ VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, // Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
+ VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, // Can be used as storage image (STORAGE_IMAGE descriptor type)
+ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, // Can be used as framebuffer color attachment
+ VK_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000020, // Can be used as framebuffer depth/stencil attachment
+ VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, // Image data not needed outside of rendering
VK_MAX_ENUM(VkImageUsageFlags)
} VkImageUsageFlags;
@@ -1251,16 +1245,17 @@
// Format capability flags
typedef enum VkFormatFeatureFlags_
{
- VK_FORMAT_IMAGE_SHADER_READ_BIT = 0x00000001,
- VK_FORMAT_IMAGE_SHADER_WRITE_BIT = 0x00000002,
- VK_FORMAT_IMAGE_COPY_BIT = 0x00000004,
- VK_FORMAT_MEMORY_SHADER_ACCESS_BIT = 0x00000008,
- VK_FORMAT_COLOR_ATTACHMENT_WRITE_BIT = 0x00000010,
- VK_FORMAT_COLOR_ATTACHMENT_BLEND_BIT = 0x00000020,
- VK_FORMAT_DEPTH_ATTACHMENT_BIT = 0x00000040,
- VK_FORMAT_STENCIL_ATTACHMENT_BIT = 0x00000080,
- VK_FORMAT_MSAA_ATTACHMENT_BIT = 0x00000100,
- VK_FORMAT_CONVERSION_BIT = 0x00000200,
+ VK_FORMAT_SAMPLED_IMAGE_BIT = 0x00000001, // Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
+ VK_FORMAT_STORAGE_IMAGE_BIT = 0x00000002, // Format can be used for storage images (STORAGE_IMAGE descriptor type)
+ VK_FORMAT_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, // Format supports atomic operations in case it's used for storage images
+ VK_FORMAT_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, // Format can be used for uniform texel buffers (TBOs)
+ VK_FORMAT_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, // Format can be used for storage texel buffers (IBOs)
+ VK_FORMAT_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, // Format supports atomic operations in case it's used for storage texel buffers
+ VK_FORMAT_VERTEX_BUFFER_BIT = 0x00000040, // Format can be used for vertex buffers (VBOs)
+ VK_FORMAT_COLOR_ATTACHMENT_BIT = 0x00000080, // Format can be used for color attachment images
+ VK_FORMAT_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, // Format supports blending in case it's used for color attachment images
+ VK_FORMAT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, // Format can be used for depth/stencil attachment images
+ VK_FORMAT_CONVERSION_BIT = 0x00000400, // Format can be used as the source or destination of format converting blits
VK_MAX_ENUM(VkFormatFeatureFlags)
} VkFormatFeatureFlags;
@@ -1808,28 +1803,28 @@
typedef struct VkImageCopy_
{
VkImageSubresource srcSubresource;
- VkOffset3D srcOffset;
+ VkOffset3D srcOffset; // Specified in pixels for both compressed and uncompressed images
VkImageSubresource destSubresource;
- VkOffset3D destOffset;
- VkExtent3D extent;
+ VkOffset3D destOffset; // Specified in pixels for both compressed and uncompressed images
+ VkExtent3D extent; // Specified in pixels for both compressed and uncompressed images
} VkImageCopy;
typedef struct VkImageBlit_
{
VkImageSubresource srcSubresource;
- VkOffset3D srcOffset;
- VkExtent3D srcExtent;
+ VkOffset3D srcOffset; // Specified in pixels for both compressed and uncompressed images
+ VkExtent3D srcExtent; // Specified in pixels for both compressed and uncompressed images
VkImageSubresource destSubresource;
- VkOffset3D destOffset;
- VkExtent3D destExtent;
+ VkOffset3D destOffset; // Specified in pixels for both compressed and uncompressed images
+ VkExtent3D destExtent; // Specified in pixels for both compressed and uncompressed images
} VkImageBlit;
typedef struct VkBufferImageCopy_
{
VkGpuSize bufferOffset; // Specified in bytes
VkImageSubresource imageSubresource;
- VkOffset3D imageOffset; // Specified in pixels for both compressed and uncompressed images
- VkExtent3D imageExtent; // Specified in pixels for both compressed and uncompressed images
+ VkOffset3D imageOffset; // Specified in pixels for both compressed and uncompressed images
+ VkExtent3D imageExtent; // Specified in pixels for both compressed and uncompressed images
} VkBufferImageCopy;
typedef struct VkImageResolve_
@@ -1925,7 +1920,7 @@
typedef struct VkVertexInputBindingDescription_
{
uint32_t binding; // Vertex buffer binding id
- uint32_t strideInBytes; // Distance between vertices in bytes (0 = no advancement)
+ uint32_t strideInBytes; // Distance between vertices in bytes (0 = no advancement)
VkVertexInputStepRate stepRate; // Rate at which binding is incremented
} VkVertexInputBindingDescription;
@@ -2851,7 +2846,7 @@
uint32_t layoutChainSlot,
uint32_t count,
const VkDescriptorSet* pDescriptorSets,
- const uint32_t * pUserData);
+ const uint32_t* pUserData);
void VKAPI vkCmdBindIndexBuffer(
VkCmdBuffer cmdBuffer,
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 1ad7c1d..18e2738 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -677,7 +677,7 @@
actualType = VK_DESCRIPTOR_TYPE_SAMPLER;
break;
case VK_STRUCTURE_TYPE_UPDATE_SAMPLER_TEXTURES:
- actualType = VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE;
+ actualType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
break;
case VK_STRUCTURE_TYPE_UPDATE_IMAGES:
actualType = ((VkUpdateImages*)pUpdateStruct)->descriptorType;
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index f41be4a..412b103 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -814,7 +814,7 @@
vkCmdFillBuffer(cmd_.obj(), bufs[0].obj(), 0, 4, 0x11111111);
// is this necessary?
VkBufferMemoryBarrier memory_barrier = bufs[0].buffer_memory_barrier(
- VK_MEMORY_OUTPUT_COPY_BIT, VK_MEMORY_INPUT_COPY_BIT, 0, 4);
+ VK_MEMORY_OUTPUT_TRANSFER_BIT, VK_MEMORY_INPUT_TRANSFER_BIT, 0, 4);
VkBufferMemoryBarrier *pmemory_barrier = &memory_barrier;
VkPipeEvent set_events[] = { VK_PIPE_EVENT_TRANSFER_COMPLETE };
@@ -832,7 +832,7 @@
vkCmdCopyBuffer(cmd_.obj(), bufs[0].obj(), bufs[1].obj(), 1, ®ion);
memory_barrier = bufs[1].buffer_memory_barrier(
- VK_MEMORY_OUTPUT_COPY_BIT, VK_MEMORY_INPUT_COPY_BIT, 0, 4);
+ VK_MEMORY_OUTPUT_TRANSFER_BIT, VK_MEMORY_INPUT_TRANSFER_BIT, 0, 4);
pmemory_barrier = &memory_barrier;
pipeline_barrier.sType = VK_STRUCTURE_TYPE_PIPELINE_BARRIER;
pipeline_barrier.eventCount = 1;
@@ -852,7 +852,7 @@
// Additional commands could go into the buffer here before the wait.
memory_barrier = bufs[1].buffer_memory_barrier(
- VK_MEMORY_OUTPUT_COPY_BIT, VK_MEMORY_INPUT_CPU_READ_BIT, 0, 4);
+ VK_MEMORY_OUTPUT_TRANSFER_BIT, VK_MEMORY_INPUT_CPU_READ_BIT, 0, 4);
pmemory_barrier = &memory_barrier;
VkEventWaitInfo wait_info = {};
wait_info.sType = VK_STRUCTURE_TYPE_EVENT_WAIT_INFO;
@@ -973,7 +973,7 @@
virtual void SetUp()
{
VkCmdBlitTest::SetUp();
- init_test_formats(VK_FORMAT_IMAGE_COPY_BIT);
+ init_test_formats(VK_FORMAT_COLOR_ATTACHMENT_BIT);
ASSERT_NE(true, test_formats_.empty());
}
@@ -1041,7 +1041,7 @@
virtual void SetUp()
{
VkCmdBlitTest::SetUp();
- init_test_formats(VK_FORMAT_IMAGE_COPY_BIT);
+ init_test_formats(VK_FORMAT_COLOR_ATTACHMENT_BIT);
ASSERT_NE(true, test_formats_.empty());
}
@@ -1109,7 +1109,7 @@
virtual void SetUp()
{
VkCmdBlitTest::SetUp();
- init_test_formats(VK_FORMAT_IMAGE_COPY_BIT);
+ init_test_formats(VK_FORMAT_COLOR_ATTACHMENT_BIT);
ASSERT_NE(true, test_formats_.empty());
}
@@ -1357,7 +1357,7 @@
VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_COPY_BIT;
+ VK_MEMORY_OUTPUT_TRANSFER_BIT;
const VkFlags all_cache_inputs =
VK_MEMORY_INPUT_CPU_READ_BIT |
VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
@@ -1367,7 +1367,7 @@
VK_MEMORY_INPUT_SHADER_READ_BIT |
VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_COPY_BIT;
+ VK_MEMORY_INPUT_TRANSFER_BIT;
std::vector<VkImageMemoryBarrier> to_clear;
std::vector<VkImageMemoryBarrier *> p_to_clear;
@@ -1517,8 +1517,7 @@
virtual void SetUp()
{
VkCmdBlitTest::SetUp();
- init_test_formats(VK_FORMAT_DEPTH_ATTACHMENT_BIT |
- VK_FORMAT_STENCIL_ATTACHMENT_BIT);
+ init_test_formats(VK_FORMAT_DEPTH_STENCIL_ATTACHMENT_BIT);
ASSERT_NE(true, test_formats_.empty());
}
@@ -1588,7 +1587,7 @@
VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_COPY_BIT;
+ VK_MEMORY_OUTPUT_TRANSFER_BIT;
const VkFlags all_cache_inputs =
VK_MEMORY_INPUT_CPU_READ_BIT |
VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
@@ -1598,7 +1597,7 @@
VK_MEMORY_INPUT_SHADER_READ_BIT |
VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_COPY_BIT;
+ VK_MEMORY_INPUT_TRANSFER_BIT;
std::vector<VkImageMemoryBarrier> to_clear;
std::vector<VkImageMemoryBarrier *> p_to_clear;
diff --git a/tests/image_tests.cpp b/tests/image_tests.cpp
index 57d0418..ee4e55e 100644
--- a/tests/image_tests.cpp
+++ b/tests/image_tests.cpp
@@ -178,10 +178,10 @@
imageCreateInfo.extent.depth = 1;
imageCreateInfo.mipLevels = mipCount;
imageCreateInfo.samples = 1;
- if (image_fmt.linearTilingFeatures & VK_FORMAT_IMAGE_SHADER_READ_BIT) {
+ if (image_fmt.linearTilingFeatures & VK_FORMAT_SAMPLED_IMAGE_BIT) {
imageCreateInfo.tiling = VK_LINEAR_TILING;
}
- else if (image_fmt.optimalTilingFeatures & VK_FORMAT_IMAGE_SHADER_READ_BIT) {
+ else if (image_fmt.optimalTilingFeatures & VK_FORMAT_SAMPLED_IMAGE_BIT) {
imageCreateInfo.tiling = VK_OPTIMAL_TILING;
}
else {
@@ -189,14 +189,19 @@
}
// Image usage flags
- // typedef enum VkImageUsageFlags_
- // {
- // VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT = 0x00000001,
- // VK_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT = 0x00000002,
- // VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000004,
// VK_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000008,
+ //typedef enum VkImageUsageFlags_
+ //{
+ // VK_IMAGE_USAGE_GENERAL = 0x00000000, // no special usage
+ // VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000001, // Can be used as a source of transfer operations
+ // VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002, // Can be used as a destination of transfer operations
+ // VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, // Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
+ // VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, // Can be used as storage image (STORAGE_IMAGE descriptor type)
+ // VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, // Can be used as framebuffer color attachment
+ // VK_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000020, // Can be used as framebuffer depth/stencil attachment
+ // VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, // Image data not needed outside of rendering
// } VkImageUsageFlags;
- imageCreateInfo.usage = VK_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+ imageCreateInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
// VkResult VKAPI vkCreateImage(
// VkDevice device,
diff --git a/tests/init.cpp b/tests/init.cpp
index 686da4c..ecd3522 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -570,15 +570,7 @@
imageCreateInfo.samples = 1;
imageCreateInfo.tiling = VK_LINEAR_TILING;
-// Image usage flags
-// typedef enum VkImageUsageFlags_
-// {
-// VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT = 0x00000001,
-// VK_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT = 0x00000002,
-// VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000004,
-// VK_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000008,
-// } VkImageUsageFlags;
- imageCreateInfo.usage = VK_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+ imageCreateInfo.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
// VkResult VKAPI vkCreateImage(
// VkDevice device,
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 64bdae0..d3060de 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -203,7 +203,6 @@
for (i = 0; i < targets; i++) {
VkImageObj *img = new VkImageObj(m_device);
img->init(m_width, m_height, m_render_target_fmt,
- VK_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT |
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT);
m_colorBindings[i].view = img->targetView();
m_colorBindings[i].layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
@@ -284,7 +283,7 @@
{
/* request a descriptor but do not update it */
VkDescriptorTypeCount tc = {};
- tc.type = VK_DESCRIPTOR_TYPE_SHADER_STORAGE_BUFFER;
+ tc.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
tc.count = 1;
m_type_counts.push_back(tc);
@@ -310,7 +309,7 @@
int VkDescriptorSetObj::AppendSamplerTexture( VkSamplerObj* sampler, VkTextureObj* texture)
{
VkDescriptorTypeCount tc = {};
- tc.type = VK_DESCRIPTOR_TYPE_SAMPLER_TEXTURE;
+ tc.type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
tc.count = 1;
m_type_counts.push_back(tc);
@@ -449,7 +448,7 @@
VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_COPY_BIT;
+ VK_MEMORY_OUTPUT_TRANSFER_BIT;
const VkFlags all_cache_inputs =
VK_MEMORY_INPUT_CPU_READ_BIT |
VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
@@ -459,7 +458,7 @@
VK_MEMORY_INPUT_SHADER_READ_BIT |
VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_COPY_BIT;
+ VK_MEMORY_INPUT_TRANSFER_BIT;
if (image_layout == m_imageInfo.layout) {
return;
@@ -467,21 +466,21 @@
switch (image_layout) {
case VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL:
- output_mask = VK_MEMORY_OUTPUT_COPY_BIT;
- input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_COPY_BIT;
+ output_mask = VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_TRANSFER_BIT;
break;
case VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL:
- output_mask = VK_MEMORY_OUTPUT_COPY_BIT;
- input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_COPY_BIT;
+ output_mask = VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_TRANSFER_BIT;
break;
case VK_IMAGE_LAYOUT_CLEAR_OPTIMAL:
break;
case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
- output_mask = VK_MEMORY_OUTPUT_COPY_BIT;
- input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_COPY_BIT;
+ output_mask = VK_MEMORY_OUTPUT_TRANSFER_BIT;
+ input_mask = VK_MEMORY_INPUT_SHADER_READ_BIT | VK_MEMORY_INPUT_TRANSFER_BIT;
break;
default:
@@ -514,12 +513,8 @@
bool VkImageObj::IsCompatible(VkFlags usage, VkFlags features)
{
- if ((usage & VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT) &&
- !(features & VK_FORMAT_IMAGE_SHADER_READ_BIT))
- return false;
-
- if ((usage & VK_IMAGE_USAGE_SHADER_ACCESS_WRITE_BIT) &&
- !(features & VK_FORMAT_IMAGE_SHADER_WRITE_BIT))
+ if ((usage & VK_IMAGE_USAGE_SAMPLED_BIT) &&
+ !(features & VK_FORMAT_SAMPLED_IMAGE_BIT))
return false;
return true;
@@ -580,7 +575,7 @@
vk_testing::Image::init(*m_device, imageCreateInfo);
- if (usage & VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT) {
+ if (usage & VK_IMAGE_USAGE_SAMPLED_BIT) {
SetLayout(VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
} else {
SetLayout(VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_GENERAL);
@@ -688,7 +683,7 @@
view.minLod = 0.0f;
/* create image */
- init(16, 16, tex_format, VK_IMAGE_USAGE_SHADER_ACCESS_READ_BIT, VK_OPTIMAL_TILING);
+ init(16, 16, tex_format, VK_IMAGE_USAGE_SAMPLED_BIT, VK_OPTIMAL_TILING);
/* create image view */
view.image = obj();
@@ -899,7 +894,7 @@
VkBufferViewCreateInfo view_info = {};
view_info.sType = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
view_info.buffer = obj();
- view_info.viewType = VK_BUFFER_VIEW_TYPED;
+ view_info.viewType = VK_BUFFER_VIEW_FORMATTED;
view_info.format = viewFormat;
view_info.offset = 0;
view_info.range = allocationSize;
@@ -1201,7 +1196,7 @@
VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_COPY_BIT;
+ VK_MEMORY_OUTPUT_TRANSFER_BIT;
const VkFlags input_mask = 0;
// whatever we want to do, we do it to the whole buffer
@@ -1283,7 +1278,7 @@
VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_COPY_BIT;
+ VK_MEMORY_OUTPUT_TRANSFER_BIT;
const VkFlags input_mask =
VK_MEMORY_INPUT_CPU_READ_BIT |
VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
@@ -1293,7 +1288,7 @@
VK_MEMORY_INPUT_SHADER_READ_BIT |
VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_COPY_BIT;
+ VK_MEMORY_INPUT_TRANSFER_BIT;
VkImageSubresourceRange srRange = {};
srRange.aspect = VK_IMAGE_ASPECT_COLOR;
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index 26b95d4..7cb3e17 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -196,7 +196,7 @@
VK_MEMORY_OUTPUT_SHADER_WRITE_BIT |
VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_OUTPUT_COPY_BIT,
+ VK_MEMORY_OUTPUT_TRANSFER_BIT,
VkFlags inputMask =
VK_MEMORY_INPUT_CPU_READ_BIT |
VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT |
@@ -206,7 +206,7 @@
VK_MEMORY_INPUT_SHADER_READ_BIT |
VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT |
VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT |
- VK_MEMORY_INPUT_COPY_BIT);
+ VK_MEMORY_INPUT_TRANSFER_BIT);
void Bind(VkCmdBuffer cmdBuffer, VkGpuSize offset, uint32_t binding);
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 44e1a1a..719a4bf 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -407,7 +407,7 @@
VkSubresourceLayout subresource_layout(const VkImageSubresource &subres) const;
bool transparent() const;
- bool copyable() const { return (format_features_ & VK_FORMAT_IMAGE_COPY_BIT); }
+ bool copyable() const { return (format_features_ & VK_FORMAT_SAMPLED_IMAGE_BIT); }
VkImageSubresourceRange subresource_range(VkImageAspect aspect) const { return subresource_range(create_info_, aspect); }
VkExtent3D extent() const { return create_info_.extent; }