tu: assert during pipeline creation
I hit this assert when running tests that use DrawID on zink. No validation errors.
src/freedreno/isa/encode.h:80: pack_field: Assertion
!(val & ~BITFIELD64_MASK(1 + high - low))' failed`
shader: MESA_SHADER_VERTEX
source_sha1: {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}
inputs: 2
outputs: 3
uniforms: 8
shared: 0
ray queries: 0
decl_var push_const INTERP_MODE_NONE block vs_pushconst
decl_var shader_in INTERP_MODE_NONE vec4 piglit_vertex (VERT_ATTRIB_GENERIC0.xyzw, 0, 0)
decl_var shader_in INTERP_MODE_NONE ivec2 ref (VERT_ATTRIB_GENERIC1.xy, 1, 0)
decl_var shader_out INTERP_MODE_NONE vec4 gl_Position (VARYING_SLOT_POS.xyzw, 0, 0)
decl_var shader_out INTERP_MODE_NONE float gl_PointSizeMESA (VARYING_SLOT_PSIZ.x, 1, 0)
decl_var shader_out INTERP_MODE_NONE vec4 color (VARYING_SLOT_VAR0.xyzw, 2, 0)
decl_function main (0 params)
impl main {
block block_0:
/* preds: */
vec1 32 ssa_0 = load_const (0x00000000 = 0.000000)
vec4 32 ssa_1 = intrinsic load_input (ssa_0) (base=0, component=0, dest_type=float32 /*160*/, io location=15 slots=1 /*143*/) /* piglit_vertex */
vec2 32 ssa_2 = intrinsic load_input (ssa_0) (base=1, component=0, dest_type=int32 /*34*/, io location=16 slots=1 /*144*/) /* ref */
vec1 32 ssa_3 = load_const (0x3f800000 = 1.000000)
vec1 32 ssa_4 = intrinsic load_draw_id () ()
vec1 1 ssa_5 = ieq ssa_2.x, ssa_4
vec1 1 ssa_6 = inot ssa_5
vec1 32 ssa_7 = b2f32 ssa_6
vec1 32 ssa_8 = b2f32 ssa_5
intrinsic store_output (ssa_1, ssa_0) (base=0, wrmask=xyzw /*15*/, component=0, src_type=float32 /*160*/, io location=0 slots=1 /*128*/, xfb() /*0*/, xfb2() /*0*/) /* gl_Position */
intrinsic store_output (ssa_3, ssa_0) (base=1, wrmask=x /*1*/, component=0, src_type=float32 /*160*/, io location=12 slots=1 /*140*/, xfb() /*0*/, xfb2() /*0*/) /* gl_PointSizeMESA */
vec4 32 ssa_9 = vec4 ssa_7, ssa_8, ssa_0, ssa_3
intrinsic store_output (ssa_9, ssa_0) (base=2, wrmask=xyzw /*15*/, component=0, src_type=float32 /*160*/, io location=32 slots=1 /*160*/, xfb() /*0*/, xfb2() /*0*/) /* color */
/* succs: block_1 */
block block_1:
}
Seems like this affects the following tests:
spec/arb_shader_draw_parameters/drawid: crash
spec/arb_shader_draw_parameters/drawid-indirect: crash
spec/arb_shader_draw_parameters/drawid-single-draw-display-list: crash
spec/arb_shader_draw_parameters/drawid-single-draw-primitive-restart: crash
spec/arb_shader_draw_parameters/drawid-vertexid: crash