They are redundant with shader_info.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6624>
}
/* Images in user SGPRs. */
}
/* Images in user SGPRs. */
- unsigned non_msaa_images = sel->info.images_declared & ~sel->info.msaa_images_declared;
+ unsigned non_msaa_images = sel->info.images_declared & ~sel->info.base.msaa_images;
for (unsigned i = 0; i < 3 && non_msaa_images & (1 << i); i++) {
for (unsigned i = 0; i < 3 && non_msaa_images & (1 << i); i++) {
- unsigned num_sgprs = sel->info.image_buffers & (1 << i) ? 4 : 8;
+ unsigned num_sgprs = sel->info.base.image_buffers & (1 << i) ? 4 : 8;
if (align(user_sgprs, num_sgprs) + num_sgprs > 16)
break;
if (align(user_sgprs, num_sgprs) + num_sgprs > 16)
break;
if (info) {
enabled_constbuf = info->const_buffers_declared;
enabled_shaderbuf = info->shader_buffers_declared;
if (info) {
enabled_constbuf = info->const_buffers_declared;
enabled_shaderbuf = info->shader_buffers_declared;
- enabled_samplers = info->samplers_declared;
+ enabled_samplers = info->base.textures_used;
enabled_images = info->images_declared;
} else {
enabled_constbuf =
enabled_images = info->images_declared;
} else {
enabled_constbuf =
unsigned num_sgprs = 8;
/* Image buffers are in desc[4..7]. */
unsigned num_sgprs = 8;
/* Image buffers are in desc[4..7]. */
- if (shader->info.image_buffers & (1 << i)) {
+ if (shader->info.base.image_buffers & (1 << i)) {
desc_offset += 4;
num_sgprs = 4;
}
desc_offset += 4;
num_sgprs = 4;
}
si_buffer_resources_check_encrypted(sctx, &sctx->const_and_shader_buffers[i]);
use_encrypted_bo |=
si_sampler_views_check_encrypted(sctx, &sctx->samplers[i],
si_buffer_resources_check_encrypted(sctx, &sctx->const_and_shader_buffers[i]);
use_encrypted_bo |=
si_sampler_views_check_encrypted(sctx, &sctx->samplers[i],
- current_shader[i]->cso->info.samplers_declared);
+ current_shader[i]->cso->info.base.textures_used);
use_encrypted_bo |= si_image_views_check_encrypted(sctx, &sctx->images[i],
current_shader[i]->cso->info.images_declared);
}
use_encrypted_bo |= si_image_views_check_encrypted(sctx, &sctx->images[i],
current_shader[i]->cso->info.images_declared);
}
* or all writable buffers are encrypted.
*/
return si_buffer_resources_check_encrypted(sctx, &sctx->const_and_shader_buffers[sh]) ||
* or all writable buffers are encrypted.
*/
return si_buffer_resources_check_encrypted(sctx, &sctx->const_and_shader_buffers[sh]) ||
- si_sampler_views_check_encrypted(sctx, &sctx->samplers[sh], info->samplers_declared) ||
+ si_sampler_views_check_encrypted(sctx, &sctx->samplers[sh], info->base.textures_used) ||
si_image_views_check_encrypted(sctx, &sctx->images[sh], info->images_declared) ||
si_buffer_resources_check_encrypted(sctx, &sctx->rw_buffers);
}
si_image_views_check_encrypted(sctx, &sctx->images[sh], info->images_declared) ||
si_buffer_resources_check_encrypted(sctx, &sctx->rw_buffers);
}
}
/* Images in user SGPRs. */
for (unsigned i = 0; i < shader->selector->cs_num_images_in_user_sgprs; i++) {
}
/* Images in user SGPRs. */
for (unsigned i = 0; i < shader->selector->cs_num_images_in_user_sgprs; i++) {
- unsigned num_sgprs = shader->selector->info.image_buffers & (1 << i) ? 4 : 8;
+ unsigned num_sgprs = shader->selector->info.base.image_buffers & (1 << i) ? 4 : 8;
while (ctx->args.num_sgprs_used % num_sgprs != 0)
ac_add_arg(&ctx->args, AC_ARG_SGPR, 1, AC_ARG_INT, NULL);
while (ctx->args.num_sgprs_used % num_sgprs != 0)
ac_add_arg(&ctx->args, AC_ARG_SGPR, 1, AC_ARG_INT, NULL);
ctx->num_const_buffers = util_last_bit(info->const_buffers_declared);
ctx->num_shader_buffers = util_last_bit(info->shader_buffers_declared);
ctx->num_const_buffers = util_last_bit(info->const_buffers_declared);
ctx->num_shader_buffers = util_last_bit(info->shader_buffers_declared);
- ctx->num_samplers = util_last_bit(info->samplers_declared);
+ ctx->num_samplers = util_last_bit(info->base.textures_used);
ctx->num_images = util_last_bit(info->images_declared);
si_llvm_init_resource_callbacks(ctx);
ctx->num_images = util_last_bit(info->images_declared);
si_llvm_init_resource_callbacks(ctx);
int constbuf0_num_slots;
unsigned const_buffers_declared; /**< bitmask of declared const buffers */
int constbuf0_num_slots;
unsigned const_buffers_declared; /**< bitmask of declared const buffers */
- unsigned samplers_declared; /**< bitmask of declared samplers */
ubyte num_stream_output_components[4];
uint num_memory_instructions; /**< sampler, buffer, and image instructions */
ubyte num_stream_output_components[4];
uint num_memory_instructions; /**< sampler, buffer, and image instructions */
unsigned num_written_clipdistance;
unsigned images_declared; /**< bitmask of declared images */
unsigned num_written_clipdistance;
unsigned images_declared; /**< bitmask of declared images */
- unsigned image_buffers; /**< bitmask of images that are buffers */
- unsigned msaa_images_declared; /**< bitmask of declared MSAA images */
unsigned shader_buffers_declared; /**< bitmask of declared shader buffers */
/** Whether all codepaths write tess factors in all invocations. */
unsigned shader_buffers_declared; /**< bitmask of declared shader buffers */
/** Whether all codepaths write tess factors in all invocations. */
const nir_deref_instr *deref = tex_get_texture_deref(tex);
nir_variable *var = deref ? nir_deref_instr_get_variable(deref) : NULL;
const nir_deref_instr *deref = tex_get_texture_deref(tex);
nir_variable *var = deref ? nir_deref_instr_get_variable(deref) : NULL;
- if (!var) {
- info->samplers_declared |= u_bit_consecutive(tex->sampler_index, 1);
- } else {
if (deref->mode != nir_var_uniform || var->data.bindless)
info->uses_bindless_samplers = true;
}
if (deref->mode != nir_var_uniform || var->data.bindless)
info->uses_bindless_samplers = true;
}
info->shader_buffers_declared = u_bit_consecutive(0, nir->info.num_ssbos);
info->const_buffers_declared = u_bit_consecutive(0, nir->info.num_ubos);
info->images_declared = u_bit_consecutive(0, nir->info.num_images);
info->shader_buffers_declared = u_bit_consecutive(0, nir->info.num_ssbos);
info->const_buffers_declared = u_bit_consecutive(0, nir->info.num_ubos);
info->images_declared = u_bit_consecutive(0, nir->info.num_images);
- info->msaa_images_declared = nir->info.msaa_images;
- info->image_buffers = nir->info.image_buffers;
- info->samplers_declared = nir->info.textures_used;
info->num_written_clipdistance = nir->info.clip_distance_array_size;
info->num_written_culldistance = nir->info.cull_distance_array_size;
info->num_written_clipdistance = nir->info.clip_distance_array_size;
info->num_written_culldistance = nir->info.cull_distance_array_size;
/* Samplers. */
struct si_shader_selector *vs = sctx->vs_shader.cso;
/* Samplers. */
struct si_shader_selector *vs = sctx->vs_shader.cso;
- if (vs->info.samplers_declared) {
- unsigned num_samplers = util_last_bit(vs->info.samplers_declared);
+ if (vs->info.base.textures_used) {
+ unsigned num_samplers = util_last_bit(vs->info.base.textures_used);
for (unsigned i = 0; i < num_samplers; i++) {
struct pipe_sampler_view *view = sctx->samplers[PIPE_SHADER_VERTEX].views[i];
for (unsigned i = 0; i < num_samplers; i++) {
struct pipe_sampler_view *view = sctx->samplers[PIPE_SHADER_VERTEX].views[i];
num_constbufs = util_last_bit(info->const_buffers_declared);
/* two 8-byte images share one 16-byte slot */
num_images = align(util_last_bit(info->images_declared), 2);
num_constbufs = util_last_bit(info->const_buffers_declared);
/* two 8-byte images share one 16-byte slot */
num_images = align(util_last_bit(info->images_declared), 2);
- num_msaa_images = align(util_last_bit(info->msaa_images_declared), 2);
- num_samplers = util_last_bit(info->samplers_declared);
+ num_msaa_images = align(util_last_bit(info->base.msaa_images), 2);
+ num_samplers = util_last_bit(info->base.textures_used);
/* The layout is: sb[last] ... sb[0], cb[0] ... cb[last] */
start = si_get_shaderbuf_slot(num_shaderbufs - 1);
/* The layout is: sb[last] ... sb[0], cb[0] ... cb[last] */
start = si_get_shaderbuf_slot(num_shaderbufs - 1);