#include "nir/nir_builder.h"
/*
- * Compute shader implementation of image->buffer copy.
+ * GFX queue: Compute shader implementation of image->buffer copy
+ * Compute queue: implementation also of buffer->image, image->image, and image clear.
*/
static nir_shader *
tex->sampler_dim = GLSL_SAMPLER_DIM_2D;
tex->op = nir_texop_txf;
tex->src[0].src_type = nir_tex_src_coord;
- tex->src[0].src = nir_src_for_ssa(img_coord);
+ tex->src[0].src = nir_src_for_ssa(nir_channels(&b, img_coord, 0x3));
tex->src[1].src_type = nir_tex_src_lod;
tex->src[1].src = nir_src_for_ssa(nir_imm_int(&b, 0));
tex->dest_type = nir_type_float;
tex->sampler_dim = GLSL_SAMPLER_DIM_BUF;
tex->op = nir_texop_txf;
tex->src[0].src_type = nir_tex_src_coord;
- tex->src[0].src = nir_src_for_ssa(buf_coord);
+ tex->src[0].src = nir_src_for_ssa(nir_channels(&b, buf_coord, 1));
tex->src[1].src_type = nir_tex_src_lod;
tex->src[1].src = nir_src_for_ssa(nir_imm_int(&b, 0));
tex->dest_type = nir_type_float;
tex->sampler_dim = GLSL_SAMPLER_DIM_2D;
tex->op = nir_texop_txf;
tex->src[0].src_type = nir_tex_src_coord;
- tex->src[0].src = nir_src_for_ssa(src_coord);
+ tex->src[0].src = nir_src_for_ssa(nir_channels(&b, src_coord, 3));
tex->src[1].src_type = nir_tex_src_lod;
tex->src[1].src = nir_src_for_ssa(nir_imm_int(&b, 0));
tex->dest_type = nir_type_float;
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
.pImageInfo = (VkDescriptorImageInfo[]) {
{
- .sampler = NULL,
+ .sampler = VK_NULL_HANDLE,
.imageView = radv_image_view_to_handle(&tmp->dst_iview),
.imageLayout = VK_IMAGE_LAYOUT_GENERAL,
},
.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
.pImageInfo = (VkDescriptorImageInfo[]) {
{
- .sampler = NULL,
+ .sampler = VK_NULL_HANDLE,
.imageView = radv_image_view_to_handle(&tmp->src_iview),
.imageLayout = VK_IMAGE_LAYOUT_GENERAL,
},
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
.pImageInfo = (VkDescriptorImageInfo[]) {
{
- .sampler = NULL,
+ .sampler = VK_NULL_HANDLE,
.imageView = radv_image_view_to_handle(&tmp->dst_iview),
.imageLayout = VK_IMAGE_LAYOUT_GENERAL,
},
.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
.pImageInfo = (VkDescriptorImageInfo[]) {
{
- .sampler = NULL,
+ .sampler = VK_NULL_HANDLE,
.imageView = radv_image_view_to_handle(&tmp->dst_iview),
.imageLayout = VK_IMAGE_LAYOUT_GENERAL,
},