blorp: introduce helper method blorp_nir_init_shader

This initializes the nir shader that will be used by blorp. Right now
it doesn't do too much beyond calling nir_builder_init_simple_shader,
and setting a name. More stuff will be added on following patches.

v2: there is a case were it is used a VERTEX_SHADER (Alejandro)
This commit is contained in:
Alejandro Piñeiro
2019-02-13 12:11:47 +01:00
parent 705723e6be
commit 675eabb560
3 changed files with 16 additions and 7 deletions

View File

@@ -1232,7 +1232,7 @@ brw_blorp_build_nir_shader(struct blorp_context *blorp, void *mem_ctx,
(key->dst_samples <= 1));
nir_builder b;
nir_builder_init_simple_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT, NULL);
blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT, NULL);
struct brw_blorp_blit_vars v;
brw_blorp_blit_vars_init(&b, &v, key);

View File

@@ -63,8 +63,7 @@ blorp_params_get_clear_kernel(struct blorp_batch *batch,
void *mem_ctx = ralloc_context(NULL);
nir_builder b;
nir_builder_init_simple_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT, NULL);
b.shader->info.name = ralloc_strdup(b.shader, "BLORP-clear");
blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT, "BLORP-clear");
nir_variable *v_color =
BLORP_CREATE_NIR_INPUT(b.shader, clear_color, glsl_vec4_type());
@@ -146,8 +145,7 @@ blorp_params_get_layer_offset_vs(struct blorp_batch *batch,
void *mem_ctx = ralloc_context(NULL);
nir_builder b;
nir_builder_init_simple_shader(&b, mem_ctx, MESA_SHADER_VERTEX, NULL);
b.shader->info.name = ralloc_strdup(b.shader, "BLORP-layer-offset-vs");
blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_VERTEX, "BLORP-layer-offset-vs");
const struct glsl_type *uvec4_type = glsl_vector_type(GLSL_TYPE_UINT, 4);
@@ -957,8 +955,8 @@ blorp_params_get_mcs_partial_resolve_kernel(struct blorp_batch *batch,
void *mem_ctx = ralloc_context(NULL);
nir_builder b;
nir_builder_init_simple_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT, NULL);
b.shader->info.name = ralloc_strdup(b.shader, "BLORP-mcs-partial-resolve");
blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT,
"BLORP-mcs-partial-resolve");
nir_variable *v_color =
BLORP_CREATE_NIR_INPUT(b.shader, clear_color, glsl_vec4_type());

View File

@@ -23,6 +23,17 @@
#include "compiler/nir/nir_builder.h"
static inline void
blorp_nir_init_shader(nir_builder *b,
void *mem_ctx,
gl_shader_stage stage,
const char *name)
{
nir_builder_init_simple_shader(b, mem_ctx, stage, NULL);
if (name != NULL)
b->shader->info.name = ralloc_strdup(b->shader, name);
}
static inline nir_ssa_def *
blorp_nir_frag_coord(nir_builder *b)
{