freedreno/ir3: Add more tess varying slots
Fixes some piglits that I stumbled across by mistake. Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17341>
This commit is contained in:
parent
ff22be1110
commit
f2d9805f9b
|
@ -52,7 +52,6 @@ glx@glx-multi-window-single-context,Fail
|
|||
glx@glx-swap-pixmap-bad,Fail
|
||||
glx@glx-visuals-depth -pixmap,Crash
|
||||
glx@glx-visuals-stencil -pixmap,Crash
|
||||
shaders@glsl-fs-fogscale,Fail
|
||||
|
||||
# "../src/freedreno/ir3/ir3_shader.h:968:ir3_link_add: Assertion `i < ARRAY_SIZE(l->var)' failed."
|
||||
shaders@glsl-max-varyings >max_varying_components,Crash
|
||||
|
@ -311,15 +310,6 @@ spec@glsl-1.50@execution@compatibility@clipping@vs-gs-clip-vertex-equal-to-posit
|
|||
spec@glsl-1.50@execution@compatibility@clipping@vs-gs-clip-vertex-homogeneity,Crash
|
||||
spec@glsl-1.50@execution@compatibility@clipping@vs-gs-clip-vertex-primitives-triangle-strip,Crash
|
||||
|
||||
spec@glsl-1.50@execution@compatibility@gs-clamp-vertex-color,Fail
|
||||
spec@glsl-1.50@execution@compatibility@gs-ff-frag,Fail
|
||||
|
||||
spec@glsl-1.50@execution@compatibility@gs-texcoord-array-2,Fail
|
||||
spec@glsl-1.50@execution@compatibility@gs-texcoord-array,Fail
|
||||
|
||||
# "ir3_nir_lower_tess.c:111: shader_io_get_unique_index: Assertion `!"illegal slot in get unique index\n"' failed."
|
||||
# I think on VARYING_SLOT_COL0 from the VS.
|
||||
spec@glsl-1.50@execution@compatibility@vs-gs-ff-frag,Crash
|
||||
spec@glsl-1.50@execution@compatibility@vs-gs-texcoord-array-2,Crash
|
||||
spec@glsl-1.50@execution@compatibility@vs-gs-texcoord-array,Crash
|
||||
|
||||
|
@ -457,56 +447,6 @@ spec@!opengl 1.4@gl-1.4-polygon-offset,Fail
|
|||
spec@!opengl 2.0@gl-2.0-edgeflag,Crash
|
||||
spec@!opengl 2.0@gl-2.0-edgeflag-immediate,Crash
|
||||
|
||||
# "src/freedreno/ir3/ir3_nir_lower_tess.c:111: shader_io_get_unique_index: Assertion `!"illegal slot in get unique index\n"'"
|
||||
spec@!opengl 2.0@vertex-program-two-side back back2,Crash
|
||||
|
||||
spec@!opengl 2.0@vertex-program-two-side back front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side back front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side back,Crash
|
||||
spec@!opengl 2.0@vertex-program-two-side back2,Crash
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled back back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled back front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled back front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled back,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front back back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front back front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front back front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front back,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front back@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front front2 back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front front2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front2 back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side enabled front2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back front2 back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back front2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front front2 back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front front2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front2 back2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front2 back2@gs-out and fs,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front2,Fail
|
||||
spec@!opengl 2.0@vertex-program-two-side front2@gs-out and fs,Fail
|
||||
|
||||
spec@!opengl 2.1@pbo,Fail
|
||||
spec@!opengl 2.1@pbo@test_polygon_stip,Fail
|
||||
spec@!opengl 2.1@polygon-stipple-fs,Fail
|
||||
|
|
|
@ -30,7 +30,7 @@ struct state {
|
|||
|
||||
struct primitive_map {
|
||||
/* +POSITION, +PSIZE, ... - see shader_io_get_unique_index */
|
||||
unsigned loc[32 + 6];
|
||||
unsigned loc[32 + 11];
|
||||
unsigned stride;
|
||||
} map;
|
||||
|
||||
|
@ -99,21 +99,31 @@ is_tess_levels(gl_varying_slot slot)
|
|||
static unsigned
|
||||
shader_io_get_unique_index(gl_varying_slot slot)
|
||||
{
|
||||
if (slot == VARYING_SLOT_POS)
|
||||
return 0;
|
||||
if (slot == VARYING_SLOT_PSIZ)
|
||||
return 1;
|
||||
if (slot == VARYING_SLOT_CLIP_DIST0)
|
||||
return 2;
|
||||
if (slot == VARYING_SLOT_CLIP_DIST1)
|
||||
return 3;
|
||||
if (slot == VARYING_SLOT_VIEWPORT)
|
||||
return 4;
|
||||
if (slot == VARYING_SLOT_LAYER)
|
||||
return 5;
|
||||
if (slot >= VARYING_SLOT_VAR0 && slot <= VARYING_SLOT_VAR31)
|
||||
return 6 + (slot - VARYING_SLOT_VAR0);
|
||||
unreachable("illegal slot in get unique index\n");
|
||||
switch (slot) {
|
||||
case VARYING_SLOT_POS: return 0;
|
||||
case VARYING_SLOT_PSIZ: return 1;
|
||||
case VARYING_SLOT_COL0: return 2;
|
||||
case VARYING_SLOT_COL1: return 3;
|
||||
case VARYING_SLOT_BFC0: return 4;
|
||||
case VARYING_SLOT_BFC1: return 5;
|
||||
case VARYING_SLOT_FOGC: return 6;
|
||||
case VARYING_SLOT_CLIP_DIST0: return 7;
|
||||
case VARYING_SLOT_CLIP_DIST1: return 8;
|
||||
case VARYING_SLOT_CLIP_VERTEX: return 9;
|
||||
case VARYING_SLOT_LAYER: return 10;
|
||||
case VARYING_SLOT_VIEWPORT: return 11;
|
||||
case VARYING_SLOT_VAR0 ... VARYING_SLOT_VAR31: {
|
||||
struct state state = {};
|
||||
STATIC_ASSERT(ARRAY_SIZE(state.map.loc) ==
|
||||
(12 + VARYING_SLOT_VAR31 - VARYING_SLOT_VAR0));
|
||||
struct ir3_shader_variant v = {};
|
||||
STATIC_ASSERT(ARRAY_SIZE(v.output_loc) ==
|
||||
(12 + VARYING_SLOT_VAR31 - VARYING_SLOT_VAR0));
|
||||
return 12 + (slot - VARYING_SLOT_VAR0);
|
||||
}
|
||||
default:
|
||||
unreachable("illegal slot in get unique index\n");
|
||||
}
|
||||
}
|
||||
|
||||
static nir_ssa_def *
|
||||
|
|
|
@ -627,7 +627,7 @@ struct ir3_shader_variant {
|
|||
* offset, and in bytes for all other stages.
|
||||
* +POSITION, +PSIZE, ... - see shader_io_get_unique_index
|
||||
*/
|
||||
unsigned output_loc[32 + 6];
|
||||
unsigned output_loc[32 + 11];
|
||||
|
||||
/* attributes (VS) / varyings (FS):
|
||||
* Note that sysval's should come *after* normal inputs.
|
||||
|
|
Loading…
Reference in New Issue