radv: initialize meta shader options earlier

We might need this for NIR builders.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15854>
This commit is contained in:
Rhys Perry
2022-03-30 11:52:58 +01:00
committed by Marge Bot
parent 53e8d6618f
commit 8e0e98a9af
22 changed files with 98 additions and 93 deletions

View File

@@ -31,10 +31,10 @@
#include "vk_format.h"
static nir_shader *
build_nir_vertex_shader(void)
build_nir_vertex_shader(struct radv_device *dev)
{
const struct glsl_type *vec4 = glsl_vec4_type();
nir_builder b = radv_meta_init_shader(MESA_SHADER_VERTEX, "meta_resolve_vs");
nir_builder b = radv_meta_init_shader(dev, MESA_SHADER_VERTEX, "meta_resolve_vs");
nir_variable *pos_out = nir_variable_create(b.shader, nir_var_shader_out, vec4, "gl_Position");
pos_out->data.location = VARYING_SLOT_POS;
@@ -52,8 +52,8 @@ build_resolve_fragment_shader(struct radv_device *dev, bool is_integer, int samp
const struct glsl_type *sampler_type =
glsl_sampler_type(GLSL_SAMPLER_DIM_MS, false, false, GLSL_TYPE_FLOAT);
nir_builder b = radv_meta_init_shader(MESA_SHADER_FRAGMENT, "meta_resolve_fs-%d-%s", samples,
is_integer ? "int" : "float");
nir_builder b = radv_meta_init_shader(dev, MESA_SHADER_FRAGMENT, "meta_resolve_fs-%d-%s",
samples, is_integer ? "int" : "float");
nir_variable *input_img = nir_variable_create(b.shader, nir_var_uniform, sampler_type, "s_tex");
input_img->data.descriptor_set = 0;
@@ -147,7 +147,7 @@ create_resolve_pipeline(struct radv_device *device, int samples_log2, VkFormat f
is_integer = true;
nir_shader *fs = build_resolve_fragment_shader(device, is_integer, samples);
nir_shader *vs = build_nir_vertex_shader();
nir_shader *vs = build_nir_vertex_shader(device);
VkPipelineShaderStageCreateInfo pipeline_shader_stages[] = {
{.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
@@ -269,7 +269,7 @@ build_depth_stencil_resolve_fragment_shader(struct radv_device *dev, int samples
const struct glsl_type *sampler_type =
glsl_sampler_type(GLSL_SAMPLER_DIM_2D, false, false, GLSL_TYPE_FLOAT);
nir_builder b = radv_meta_init_shader(MESA_SHADER_FRAGMENT, "meta_resolve_fs_%s-%s-%d",
nir_builder b = radv_meta_init_shader(dev, MESA_SHADER_FRAGMENT, "meta_resolve_fs_%s-%s-%d",
index == DEPTH_RESOLVE ? "depth" : "stencil",
get_resolve_mode_str(resolve_mode), samples);
@@ -401,7 +401,7 @@ create_depth_stencil_resolve_pipeline(struct radv_device *device, int samples_lo
uint32_t samples = 1 << samples_log2;
nir_shader *fs =
build_depth_stencil_resolve_fragment_shader(device, samples, index, resolve_mode);
nir_shader *vs = build_nir_vertex_shader();
nir_shader *vs = build_nir_vertex_shader(device);
VkPipelineShaderStageCreateInfo pipeline_shader_stages[] = {
{.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,