compiler: Rename shader_prim to mesa_prim and replace all usage of pipe_prim_type with mesa_prim
This is a prepare step to remove depends on p_defines.h in src/util/* This is done by: replace pipe_prim_type with mesa_prim replace shader_prim with mesa_prim replace PIPE_PRIM_MAX with MESA_PRIM_COUNT replace SHADER_PRIM_ with MESA_PRIM_ replace PIPE_PRIM_ with MESA_PRIM_ This patch only replace code only Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> Acked-by: Marek Olšák <marek.olsak@amd.com> Acked-by: Jesse Natalie <jenatali@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23369>
This commit is contained in:
@@ -27,96 +27,96 @@
|
||||
#include "util/u_memory.h"
|
||||
|
||||
static unsigned int
|
||||
gs_in_prim_for_topology(enum shader_prim prim)
|
||||
gs_in_prim_for_topology(enum mesa_prim prim)
|
||||
{
|
||||
switch (prim) {
|
||||
case SHADER_PRIM_QUADS:
|
||||
return SHADER_PRIM_LINES_ADJACENCY;
|
||||
case MESA_PRIM_QUADS:
|
||||
return MESA_PRIM_LINES_ADJACENCY;
|
||||
default:
|
||||
return prim;
|
||||
}
|
||||
}
|
||||
|
||||
static enum shader_prim
|
||||
gs_out_prim_for_topology(enum shader_prim prim)
|
||||
static enum mesa_prim
|
||||
gs_out_prim_for_topology(enum mesa_prim prim)
|
||||
{
|
||||
switch (prim) {
|
||||
case SHADER_PRIM_POINTS:
|
||||
return SHADER_PRIM_POINTS;
|
||||
case SHADER_PRIM_LINES:
|
||||
case SHADER_PRIM_LINE_LOOP:
|
||||
case SHADER_PRIM_LINES_ADJACENCY:
|
||||
case SHADER_PRIM_LINE_STRIP_ADJACENCY:
|
||||
case SHADER_PRIM_LINE_STRIP:
|
||||
return SHADER_PRIM_LINE_STRIP;
|
||||
case SHADER_PRIM_TRIANGLES:
|
||||
case SHADER_PRIM_TRIANGLE_STRIP:
|
||||
case SHADER_PRIM_TRIANGLE_FAN:
|
||||
case SHADER_PRIM_TRIANGLES_ADJACENCY:
|
||||
case SHADER_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
case SHADER_PRIM_POLYGON:
|
||||
return SHADER_PRIM_TRIANGLE_STRIP;
|
||||
case SHADER_PRIM_QUADS:
|
||||
case SHADER_PRIM_QUAD_STRIP:
|
||||
case SHADER_PRIM_PATCHES:
|
||||
case MESA_PRIM_POINTS:
|
||||
return MESA_PRIM_POINTS;
|
||||
case MESA_PRIM_LINES:
|
||||
case MESA_PRIM_LINE_LOOP:
|
||||
case MESA_PRIM_LINES_ADJACENCY:
|
||||
case MESA_PRIM_LINE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_LINE_STRIP:
|
||||
return MESA_PRIM_LINE_STRIP;
|
||||
case MESA_PRIM_TRIANGLES:
|
||||
case MESA_PRIM_TRIANGLE_STRIP:
|
||||
case MESA_PRIM_TRIANGLE_FAN:
|
||||
case MESA_PRIM_TRIANGLES_ADJACENCY:
|
||||
case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_POLYGON:
|
||||
return MESA_PRIM_TRIANGLE_STRIP;
|
||||
case MESA_PRIM_QUADS:
|
||||
case MESA_PRIM_QUAD_STRIP:
|
||||
case MESA_PRIM_PATCHES:
|
||||
default:
|
||||
return SHADER_PRIM_QUADS;
|
||||
return MESA_PRIM_QUADS;
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned int
|
||||
vertices_for_prim(enum shader_prim prim)
|
||||
vertices_for_prim(enum mesa_prim prim)
|
||||
{
|
||||
switch (prim) {
|
||||
case SHADER_PRIM_POINTS:
|
||||
case MESA_PRIM_POINTS:
|
||||
return 1;
|
||||
case SHADER_PRIM_LINES:
|
||||
case SHADER_PRIM_LINE_LOOP:
|
||||
case SHADER_PRIM_LINES_ADJACENCY:
|
||||
case SHADER_PRIM_LINE_STRIP_ADJACENCY:
|
||||
case SHADER_PRIM_LINE_STRIP:
|
||||
case MESA_PRIM_LINES:
|
||||
case MESA_PRIM_LINE_LOOP:
|
||||
case MESA_PRIM_LINES_ADJACENCY:
|
||||
case MESA_PRIM_LINE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_LINE_STRIP:
|
||||
return 2;
|
||||
case SHADER_PRIM_TRIANGLES:
|
||||
case SHADER_PRIM_TRIANGLE_STRIP:
|
||||
case SHADER_PRIM_TRIANGLE_FAN:
|
||||
case SHADER_PRIM_TRIANGLES_ADJACENCY:
|
||||
case SHADER_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
case SHADER_PRIM_POLYGON:
|
||||
case MESA_PRIM_TRIANGLES:
|
||||
case MESA_PRIM_TRIANGLE_STRIP:
|
||||
case MESA_PRIM_TRIANGLE_FAN:
|
||||
case MESA_PRIM_TRIANGLES_ADJACENCY:
|
||||
case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_POLYGON:
|
||||
return 3;
|
||||
case SHADER_PRIM_QUADS:
|
||||
case SHADER_PRIM_QUAD_STRIP:
|
||||
case MESA_PRIM_QUADS:
|
||||
case MESA_PRIM_QUAD_STRIP:
|
||||
return 4;
|
||||
case SHADER_PRIM_PATCHES:
|
||||
case MESA_PRIM_PATCHES:
|
||||
default:
|
||||
unreachable("unsupported primitive for gs input");
|
||||
}
|
||||
}
|
||||
|
||||
static unsigned int
|
||||
array_size_for_prim(enum shader_prim prim)
|
||||
array_size_for_prim(enum mesa_prim prim)
|
||||
{
|
||||
switch (prim) {
|
||||
case SHADER_PRIM_POINTS:
|
||||
case MESA_PRIM_POINTS:
|
||||
return 1;
|
||||
case SHADER_PRIM_LINES:
|
||||
case SHADER_PRIM_LINE_LOOP:
|
||||
case SHADER_PRIM_LINE_STRIP:
|
||||
case MESA_PRIM_LINES:
|
||||
case MESA_PRIM_LINE_LOOP:
|
||||
case MESA_PRIM_LINE_STRIP:
|
||||
return 2;
|
||||
case SHADER_PRIM_LINES_ADJACENCY:
|
||||
case SHADER_PRIM_LINE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_LINES_ADJACENCY:
|
||||
case MESA_PRIM_LINE_STRIP_ADJACENCY:
|
||||
return 4;
|
||||
case SHADER_PRIM_TRIANGLES:
|
||||
case SHADER_PRIM_TRIANGLE_STRIP:
|
||||
case SHADER_PRIM_TRIANGLE_FAN:
|
||||
case SHADER_PRIM_POLYGON:
|
||||
case MESA_PRIM_TRIANGLES:
|
||||
case MESA_PRIM_TRIANGLE_STRIP:
|
||||
case MESA_PRIM_TRIANGLE_FAN:
|
||||
case MESA_PRIM_POLYGON:
|
||||
return 3;
|
||||
case SHADER_PRIM_TRIANGLES_ADJACENCY:
|
||||
case SHADER_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_TRIANGLES_ADJACENCY:
|
||||
case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
return 6;
|
||||
case SHADER_PRIM_QUADS:
|
||||
case SHADER_PRIM_QUAD_STRIP:
|
||||
case MESA_PRIM_QUADS:
|
||||
case MESA_PRIM_QUAD_STRIP:
|
||||
return 4;
|
||||
case SHADER_PRIM_PATCHES:
|
||||
case MESA_PRIM_PATCHES:
|
||||
default:
|
||||
unreachable("unsupported primitive for gs input");
|
||||
}
|
||||
@@ -149,14 +149,14 @@ copy_vars(nir_builder *b, nir_deref_instr *dst, nir_deref_instr *src)
|
||||
nir_shader *
|
||||
nir_create_passthrough_gs(const nir_shader_compiler_options *options,
|
||||
const nir_shader *prev_stage,
|
||||
enum shader_prim primitive_type,
|
||||
enum mesa_prim primitive_type,
|
||||
bool emulate_edgeflags,
|
||||
bool force_line_strip_out)
|
||||
{
|
||||
unsigned int vertices_out = vertices_for_prim(primitive_type);
|
||||
emulate_edgeflags = emulate_edgeflags && (prev_stage->info.outputs_written & VARYING_BIT_EDGE);
|
||||
bool needs_closing = (force_line_strip_out || emulate_edgeflags) && vertices_out >= 3;
|
||||
enum shader_prim original_our_prim = gs_out_prim_for_topology(primitive_type);
|
||||
enum mesa_prim original_our_prim = gs_out_prim_for_topology(primitive_type);
|
||||
nir_builder b = nir_builder_init_simple_shader(MESA_SHADER_GEOMETRY,
|
||||
options,
|
||||
"gs passthrough");
|
||||
@@ -164,7 +164,7 @@ nir_create_passthrough_gs(const nir_shader_compiler_options *options,
|
||||
nir_shader *nir = b.shader;
|
||||
nir->info.gs.input_primitive = gs_in_prim_for_topology(primitive_type);
|
||||
nir->info.gs.output_primitive = (force_line_strip_out || emulate_edgeflags) ?
|
||||
SHADER_PRIM_LINE_STRIP : original_our_prim;
|
||||
MESA_PRIM_LINE_STRIP : original_our_prim;
|
||||
nir->info.gs.vertices_in = vertices_out;
|
||||
nir->info.gs.vertices_out = needs_closing ? vertices_out + 1 : vertices_out;
|
||||
nir->info.gs.invocations = 1;
|
||||
@@ -176,7 +176,7 @@ nir_create_passthrough_gs(const nir_shader_compiler_options *options,
|
||||
nir->xfb_info = mem_dup(prev_stage->xfb_info, sizeof(nir_xfb_info));
|
||||
}
|
||||
|
||||
bool handle_flat = nir->info.gs.output_primitive == SHADER_PRIM_LINE_STRIP &&
|
||||
bool handle_flat = nir->info.gs.output_primitive == MESA_PRIM_LINE_STRIP &&
|
||||
nir->info.gs.output_primitive != original_our_prim;
|
||||
nir_variable *in_vars[VARYING_SLOT_MAX * 4];
|
||||
nir_variable *out_vars[VARYING_SLOT_MAX * 4];
|
||||
@@ -231,13 +231,13 @@ nir_create_passthrough_gs(const nir_shader_compiler_options *options,
|
||||
unsigned int end_vert = vertices_out;
|
||||
unsigned int vert_step = 1;
|
||||
switch (primitive_type) {
|
||||
case PIPE_PRIM_LINES_ADJACENCY:
|
||||
case PIPE_PRIM_LINE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_LINES_ADJACENCY:
|
||||
case MESA_PRIM_LINE_STRIP_ADJACENCY:
|
||||
start_vert = 1;
|
||||
end_vert += 1;
|
||||
break;
|
||||
case PIPE_PRIM_TRIANGLES_ADJACENCY:
|
||||
case PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
case MESA_PRIM_TRIANGLES_ADJACENCY:
|
||||
case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY:
|
||||
end_vert = 5;
|
||||
vert_step = 2;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user