diff --git a/docs/gallium/screen.rst b/docs/gallium/screen.rst index 8feae2ee50d..d8043b7eb21 100644 --- a/docs/gallium/screen.rst +++ b/docs/gallium/screen.rst @@ -741,8 +741,6 @@ support different features. Note that 16-bit constants are not lowered to uniforms in GLSL. * ``PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS``: The maximum number of texture samplers. -* ``PIPE_SHADER_CAP_PREFERRED_IR``: Preferred representation of the - program. It should be one of the ``pipe_shader_ir`` enum values. * ``PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS``: The maximum number of texture sampler views. Must not be lower than PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS. * ``PIPE_SHADER_CAP_DROUND_SUPPORTED``: Whether double precision rounding diff --git a/src/gallium/auxiliary/draw/draw_vs.c b/src/gallium/auxiliary/draw/draw_vs.c index e5d88c6e8c0..7524368ee02 100644 --- a/src/gallium/auxiliary/draw/draw_vs.c +++ b/src/gallium/auxiliary/draw/draw_vs.c @@ -70,11 +70,8 @@ draw_create_vertex_shader(struct draw_context *draw, if (draw->pt.middle.llvm) { struct pipe_screen *screen = draw->pipe->screen; if (shader->type == PIPE_SHADER_IR_NIR && - ((!screen->get_shader_param(screen, PIPE_SHADER_VERTEX, - PIPE_SHADER_CAP_INTEGERS)) || - (screen->get_shader_param(screen, PIPE_SHADER_VERTEX, - PIPE_SHADER_CAP_PREFERRED_IR) == - PIPE_SHADER_IR_TGSI))) { + !screen->get_shader_param(screen, PIPE_SHADER_VERTEX, + PIPE_SHADER_CAP_INTEGERS)) { state.type = PIPE_SHADER_IR_TGSI; state.tokens = nir_to_tgsi(shader->ir.nir, screen); is_allocated = true; diff --git a/src/gallium/auxiliary/gallivm/lp_bld_limits.h b/src/gallium/auxiliary/gallivm/lp_bld_limits.h index 30e5c74fc15..77da9f8a6b2 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_limits.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_limits.h @@ -142,8 +142,6 @@ gallivm_get_shader_param(enum pipe_shader_cap param) return PIPE_MAX_SAMPLERS; case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return PIPE_MAX_SHADER_SAMPLER_VIEWS; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_TGSI; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_TGSI) | (1 << PIPE_SHADER_IR_NIR); case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h b/src/gallium/auxiliary/tgsi/tgsi_exec.h index d0b90e476a4..fd0a9b5e4f8 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.h +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h @@ -476,8 +476,6 @@ tgsi_exec_get_shader_param(enum pipe_shader_cap param) return PIPE_MAX_SAMPLERS; case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return PIPE_MAX_SHADER_SAMPLER_VIEWS; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_TGSI; case PIPE_SHADER_CAP_SUPPORTED_IRS: return 1 << PIPE_SHADER_IR_TGSI; case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: diff --git a/src/gallium/drivers/asahi/agx_pipe.c b/src/gallium/drivers/asahi/agx_pipe.c index f461dcb6e26..8cd2998d50f 100644 --- a/src/gallium/drivers/asahi/agx_pipe.c +++ b/src/gallium/drivers/asahi/agx_pipe.c @@ -1782,9 +1782,6 @@ agx_get_shader_param(struct pipe_screen *pscreen, enum pipe_shader_type shader, case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 16; /* XXX: How many? */ - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; - case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_NIR); diff --git a/src/gallium/drivers/crocus/crocus_screen.c b/src/gallium/drivers/crocus/crocus_screen.c index 2b0c43aed7e..1cee70d79ee 100644 --- a/src/gallium/drivers/crocus/crocus_screen.c +++ b/src/gallium/drivers/crocus/crocus_screen.c @@ -521,8 +521,6 @@ crocus_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS: case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS: return 0; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return 1 << PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_DROUND_SUPPORTED: diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index bb9fc0b8faf..a4280966690 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -465,9 +465,6 @@ d3d12_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_FP16: return 0; /* not implemented */ - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; - case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: return 0; /* not implemented */ diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index c786f6782a1..a60eef871e9 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -410,8 +410,6 @@ etna_screen_get_shader_param(struct pipe_screen *pscreen, return shader == PIPE_SHADER_FRAGMENT ? screen->specs.fragment_sampler_count : screen->specs.vertex_sampler_count; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_MAX_CONST_BUFFER0_SIZE: if (ubo_enable) return 16384; /* 16384 so state tracker enables UBOs */ diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index 61c40f666de..2b5481693cd 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -722,8 +722,6 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 16; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_NIR) | COND(has_compute(screen) && (shader == PIPE_SHADER_COMPUTE), diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c index f448447fcfd..01f2cb8f909 100644 --- a/src/gallium/drivers/i915/i915_screen.c +++ b/src/gallium/drivers/i915/i915_screen.c @@ -281,8 +281,6 @@ i915_get_shader_param(struct pipe_screen *screen, enum pipe_shader_type shader, enum pipe_shader_cap cap) { switch (cap) { - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_NIR) | (1 << PIPE_SHADER_IR_TGSI); diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index e723f083db3..d761763a91f 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -544,8 +544,6 @@ iris_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS: case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS: return 0; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: { int irs = 1 << PIPE_SHADER_IR_NIR; if (iris_enable_clover()) diff --git a/src/gallium/drivers/lima/lima_screen.c b/src/gallium/drivers/lima/lima_screen.c index 364510bcdbc..8a58b5c6b2b 100644 --- a/src/gallium/drivers/lima/lima_screen.c +++ b/src/gallium/drivers/lima/lima_screen.c @@ -229,9 +229,6 @@ get_vertex_shader_param(struct lima_screen *screen, case PIPE_SHADER_CAP_MAX_CONST_BUFFERS: return 1; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; - case PIPE_SHADER_CAP_MAX_TEMPS: return 256; /* need investigate */ @@ -271,9 +268,6 @@ get_fragment_shader_param(struct lima_screen *screen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: return 16; /* need investigate */ - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; - case PIPE_SHADER_CAP_MAX_TEMPS: return 256; /* need investigate */ diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index b0a5b61d6b8..133751344e2 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -385,8 +385,6 @@ llvmpipe_get_shader_param(struct pipe_screen *screen, case PIPE_SHADER_MESH: case PIPE_SHADER_TASK: case PIPE_SHADER_FRAGMENT: - if (param == PIPE_SHADER_CAP_PREFERRED_IR) - return PIPE_SHADER_IR_NIR; return gallivm_get_shader_param(param); case PIPE_SHADER_TESS_CTRL: case PIPE_SHADER_TESS_EVAL: @@ -397,8 +395,6 @@ llvmpipe_get_shader_param(struct pipe_screen *screen, case PIPE_SHADER_VERTEX: case PIPE_SHADER_GEOMETRY: switch (param) { - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: /* At this time, the draw module and llvmpipe driver only * support vertex shader texture lookups when LLVM is enabled in diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c index f696345a345..78597f7936e 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c @@ -344,8 +344,6 @@ nv30_screen_get_shader_param(struct pipe_screen *pscreen, return 1; case PIPE_SHADER_CAP_MAX_TEMPS: return (eng3d->oclass >= NV40_3D_CLASS) ? 32 : 13; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 0; @@ -399,8 +397,6 @@ nv30_screen_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 16; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_CONT_SUPPORTED: case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: case PIPE_SHADER_CAP_INDIRECT_INPUT_ADDR: diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c index 80cab54d114..86b21b13ff0 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c @@ -373,8 +373,6 @@ nv50_screen_get_shader_param(struct pipe_screen *pscreen, return shader == PIPE_SHADER_COMPUTE ? NV50_MAX_GLOBALS - 1 : 0; case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: return shader == PIPE_SHADER_COMPUTE ? NV50_MAX_GLOBALS - 1 : 0; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return 1 << PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_DROUND_SUPPORTED: diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index 9838b6f93de..27889541d82 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -395,8 +395,6 @@ nvc0_screen_get_shader_param(struct pipe_screen *pscreen, } switch (param) { - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: { uint32_t irs = 1 << PIPE_SHADER_IR_NIR; if (screen->force_enable_cl) diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c index fa468d15e49..c0bff78d4ae 100644 --- a/src/gallium/drivers/panfrost/pan_screen.c +++ b/src/gallium/drivers/panfrost/pan_screen.c @@ -469,9 +469,6 @@ panfrost_get_shader_param(struct pipe_screen *screen, STATIC_ASSERT(PIPE_MAX_SHADER_SAMPLER_VIEWS < 0x10000); return PIPE_MAX_SHADER_SAMPLER_VIEWS; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; - case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_NIR); diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index b6ef2f1ace3..ad6c36d2123 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -255,8 +255,6 @@ static int r300_get_shader_param(struct pipe_screen *pscreen, boolean is_r500 = r300screen->caps.is_r500; switch (param) { - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_NIR) | (1 << PIPE_SHADER_IR_TGSI); default: diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 08f35d6013c..02bc47d01d0 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -623,8 +623,6 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 16; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: { int ir = 0; if (shader == PIPE_SHADER_COMPUTE) diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index 1999bd11118..2c436a94e89 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -463,8 +463,6 @@ static int si_get_shader_param(struct pipe_screen *pscreen, enum pipe_shader_typ return SI_NUM_SHADER_BUFFERS; case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: return SI_NUM_IMAGES; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: if (shader == PIPE_SHADER_COMPUTE) { diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index c3c0dba7399..7e096a02162 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -326,8 +326,6 @@ softpipe_get_shader_param(struct pipe_screen *screen, struct softpipe_screen *sp_screen = softpipe_screen(screen); switch (param) { - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_NIR) | (1 << PIPE_SHADER_IR_TGSI); default: diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c index 84a25f0890f..f7b0fde72cb 100644 --- a/src/gallium/drivers/svga/svga_screen.c +++ b/src/gallium/drivers/svga/svga_screen.c @@ -535,8 +535,6 @@ vgpu9_get_shader_param(struct pipe_screen *screen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 16; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_TGSI) | (1 << PIPE_SHADER_IR_NIR); case PIPE_SHADER_CAP_DROUND_SUPPORTED: @@ -599,8 +597,6 @@ vgpu9_get_shader_param(struct pipe_screen *screen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return 0; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_TGSI) | (1 << PIPE_SHADER_IR_NIR); case PIPE_SHADER_CAP_DROUND_SUPPORTED: @@ -711,8 +707,6 @@ vgpu10_get_shader_param(struct pipe_screen *screen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return sws->have_gl43 ? PIPE_MAX_SAMPLERS : SVGA3D_DX_MAX_SAMPLERS; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: if (sws->have_gl43) return (1 << PIPE_SHADER_IR_TGSI) | (1 << PIPE_SHADER_IR_NIR); diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index ad15c7982d0..18f8029b206 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -464,8 +464,6 @@ v3d_screen_get_shader_param(struct pipe_screen *pscreen, enum pipe_shader_type s return 0; } - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return 1 << PIPE_SHADER_IR_NIR; default: diff --git a/src/gallium/drivers/vc4/vc4_screen.c b/src/gallium/drivers/vc4/vc4_screen.c index f279a4c6933..c0d4e6406f0 100644 --- a/src/gallium/drivers/vc4/vc4_screen.c +++ b/src/gallium/drivers/vc4/vc4_screen.c @@ -299,8 +299,6 @@ vc4_screen_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: return VC4_MAX_TEXTURE_SAMPLERS; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return 1 << PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS: diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index 8e02cc4c171..77ea522f00e 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -449,8 +449,6 @@ virgl_get_shader_param(struct pipe_screen *screen, return vscreen->caps.caps.v2.max_shader_image_frag_compute; else return vscreen->caps.caps.v2.max_shader_image_other_stages; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; case PIPE_SHADER_CAP_SUPPORTED_IRS: return (1 << PIPE_SHADER_IR_TGSI) | (1 << PIPE_SHADER_IR_NIR); case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS: diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 27eb32145a3..aab92605bf0 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1206,9 +1206,6 @@ zink_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_CAP_INT16: return screen->info.feats.features.shaderInt16; - case PIPE_SHADER_CAP_PREFERRED_IR: - return PIPE_SHADER_IR_NIR; - case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: return 0; /* not implemented */ diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 978919cca16..153b4b92f69 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -1089,7 +1089,6 @@ enum pipe_shader_cap PIPE_SHADER_CAP_INT16, PIPE_SHADER_CAP_GLSL_16BIT_CONSTS, PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS, - PIPE_SHADER_CAP_PREFERRED_IR, PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED, PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS, PIPE_SHADER_CAP_DROUND_SUPPORTED, /* all rounding modes */ diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index 73c6e1cd72b..1ebe5f7b61a 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -282,12 +282,8 @@ struct pipe_stream_output_info }; /** - * The 'type' parameter identifies whether the shader state contains TGSI - * tokens, etc. If the driver returns 'PIPE_SHADER_IR_TGSI' for the - * 'PIPE_SHADER_CAP_PREFERRED_IR' shader param, the ir will *always* be - * 'PIPE_SHADER_IR_TGSI' and the tokens ptr will be valid. If the driver - * requests a different 'pipe_shader_ir' type, then it must check the 'type' - * enum to see if it is getting TGSI tokens or its preferred IR. + * The 'type' parameter identifies whether the shader state contains NIR, TGSI + * tokens, etc. * * TODO pipe_compute_state should probably get similar treatment to handle * multiple IR's in a cleaner way.. diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c index be836b62eae..63dd9f5cf33 100644 --- a/src/mesa/state_tracker/st_cb_clear.c +++ b/src/mesa/state_tracker/st_cb_clear.c @@ -108,10 +108,6 @@ st_destroy_clear(struct st_context *st) static void set_clearcolor_fs(struct st_context *st, union pipe_color_union *color) { - struct pipe_screen *pscreen = st->screen; - bool use_nir = PIPE_SHADER_IR_NIR == - pscreen->get_shader_param(pscreen, PIPE_SHADER_VERTEX, - PIPE_SHADER_CAP_PREFERRED_IR); struct pipe_constant_buffer cb = { .user_buffer = color->f, .buffer_size = 4 * sizeof(float), @@ -120,11 +116,7 @@ set_clearcolor_fs(struct st_context *st, union pipe_color_union *color) false, &cb); if (!st->clear.fs) { - if (use_nir) { - st->clear.fs = st_nir_make_clearcolor_shader(st); - } else { - st->clear.fs = util_make_fs_clear_all_cbufs(st->pipe); - } + st->clear.fs = st_nir_make_clearcolor_shader(st); } cso_set_fragment_shader_handle(st->cso_context, st->clear.fs); @@ -155,29 +147,11 @@ make_nir_clear_vertex_shader(struct st_context *st, bool layered) static inline void set_vertex_shader(struct st_context *st) { - struct pipe_screen *pscreen = st->screen; - bool use_nir = PIPE_SHADER_IR_NIR == - pscreen->get_shader_param(pscreen, PIPE_SHADER_VERTEX, - PIPE_SHADER_CAP_PREFERRED_IR); - /* vertex shader - still required to provide the linkage between * fragment shader input semantics and vertex_element/buffers. */ if (!st->clear.vs) - { - if (use_nir) { - st->clear.vs = make_nir_clear_vertex_shader(st, false); - } else { - const enum tgsi_semantic semantic_names[] = { - TGSI_SEMANTIC_POSITION, - }; - const uint semantic_indexes[] = { 0 }; - st->clear.vs = util_make_vertex_passthrough_shader(st->pipe, 1, - semantic_names, - semantic_indexes, - FALSE); - } - } + st->clear.vs = make_nir_clear_vertex_shader(st, false); cso_set_vertex_shader_handle(st->cso_context, st->clear.vs); cso_set_geometry_shader_handle(st->cso_context, NULL); @@ -188,10 +162,6 @@ static void set_vertex_shader_layered(struct st_context *st) { struct pipe_context *pipe = st->pipe; - struct pipe_screen *pscreen = st->screen; - bool use_nir = PIPE_SHADER_IR_NIR == - pscreen->get_shader_param(pscreen, PIPE_SHADER_VERTEX, - PIPE_SHADER_CAP_PREFERRED_IR); if (!st->screen->get_param(st->screen, PIPE_CAP_VS_INSTANCEID)) { assert(!"Got layered clear, but VS instancing is unsupported"); @@ -203,9 +173,7 @@ set_vertex_shader_layered(struct st_context *st) bool vs_layer = st->screen->get_param(st->screen, PIPE_CAP_VS_LAYER_VIEWPORT); if (vs_layer) { - st->clear.vs_layered = - use_nir ? make_nir_clear_vertex_shader(st, true) - : util_make_layered_clear_vertex_shader(pipe); + st->clear.vs_layered = make_nir_clear_vertex_shader(st, true); } else { st->clear.vs_layered = util_make_layered_clear_helper_vertex_shader(pipe); st->clear.gs_layered = util_make_layered_clear_geometry_shader(pipe); diff --git a/src/mesa/state_tracker/st_cb_drawtex.c b/src/mesa/state_tracker/st_cb_drawtex.c index ce5423c2ba1..3269b7aee8b 100644 --- a/src/mesa/state_tracker/st_cb_drawtex.c +++ b/src/mesa/state_tracker/st_cb_drawtex.c @@ -95,8 +95,6 @@ lookup_shader(struct st_context *st, const enum tgsi_semantic *semantic_names, const uint *semantic_indexes) { - struct pipe_context *pipe = st->pipe; - struct pipe_screen *screen = st->screen; GLuint i, j; /* look for existing shader with same attributes */ @@ -126,32 +124,20 @@ lookup_shader(struct st_context *st, CachedShaders[i].semantic_indexes[j] = semantic_indexes[j]; } - enum pipe_shader_ir preferred_ir = - screen->get_shader_param(screen, PIPE_SHADER_VERTEX, - PIPE_SHADER_CAP_PREFERRED_IR); + unsigned inputs[2 + MAX_TEXTURE_UNITS]; + unsigned outputs[2 + MAX_TEXTURE_UNITS]; - if (preferred_ir == PIPE_SHADER_IR_NIR) { - unsigned inputs[2 + MAX_TEXTURE_UNITS]; - unsigned outputs[2 + MAX_TEXTURE_UNITS]; - - for (int j = 0; j < num_attribs; j++) { - inputs[j] = semantic_to_vert_attrib(semantic_names[j]); - outputs[j] = semantic_to_varying_slot(semantic_names[j]); - } - - CachedShaders[i].handle = - st_nir_make_passthrough_shader(st, "st/drawtex VS", - MESA_SHADER_VERTEX, - num_attribs, inputs, - outputs, NULL, 0); - } else { - CachedShaders[i].handle = - util_make_vertex_passthrough_shader(pipe, - num_attribs, - semantic_names, - semantic_indexes, FALSE); + for (int j = 0; j < num_attribs; j++) { + inputs[j] = semantic_to_vert_attrib(semantic_names[j]); + outputs[j] = semantic_to_varying_slot(semantic_names[j]); } + CachedShaders[i].handle = + st_nir_make_passthrough_shader(st, "st/drawtex VS", + MESA_SHADER_VERTEX, + num_attribs, inputs, + outputs, NULL, 0); + NumCachedShaders++; return CachedShaders[i].handle; diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index d7ec3d4b197..359fc62c841 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -175,8 +175,6 @@ void st_init_limits(struct pipe_screen *screen, &c->ShaderCompilerOptions[stage]; struct gl_program_constants *pc = &c->Program[stage]; - bool prefer_nir = PIPE_SHADER_IR_NIR == - screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_PREFERRED_IR); if (screen->get_compiler_options) options->NirOptions = screen->get_compiler_options(screen, PIPE_SHADER_IR_NIR, sh); @@ -363,21 +361,16 @@ void st_init_limits(struct pipe_screen *screen, options->LowerBuiltinVariablesXfb |= VARYING_BIT_PSIZ; } - /* Note: If the driver doesn't prefer NIR, then st_create_nir_shader() - * will call nir_to_tgsi, and TGSI doesn't support 16-bit ops. - */ - if (prefer_nir) { - options->LowerPrecisionFloat16 = - screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16); - options->LowerPrecisionDerivatives = - screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16_DERIVATIVES); - options->LowerPrecisionInt16 = - screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INT16); - options->LowerPrecisionConstants = - screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_GLSL_16BIT_CONSTS); - options->LowerPrecisionFloat16Uniforms = - screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16_CONST_BUFFERS); - } + options->LowerPrecisionFloat16 = + screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16); + options->LowerPrecisionDerivatives = + screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16_DERIVATIVES); + options->LowerPrecisionInt16 = + screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INT16); + options->LowerPrecisionConstants = + screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_GLSL_16BIT_CONSTS); + options->LowerPrecisionFloat16Uniforms = + screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_FP16_CONST_BUFFERS); } c->MaxUserAssignableUniformLocations = @@ -1840,13 +1833,10 @@ void st_init_extensions(struct pipe_screen *screen, screen->get_param(screen, PIPE_CAP_ALLOW_DRAW_OUT_OF_ORDER); consts->GLThreadNopCheckFramebufferStatus = options->glthread_nop_check_framebuffer_status; - bool prefer_nir = PIPE_SHADER_IR_NIR == - screen->get_shader_param(screen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_PREFERRED_IR); const struct nir_shader_compiler_options *nir_options = consts->ShaderCompilerOptions[MESA_SHADER_FRAGMENT].NirOptions; - if (prefer_nir && - screen->get_shader_param(screen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_INTEGERS) && + if (screen->get_shader_param(screen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_INTEGERS) && extensions->ARB_stencil_texturing && screen->get_param(screen, PIPE_CAP_DOUBLES) && !(nir_options->lower_doubles_options & nir_lower_fp64_full_software)) diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 158c1792a0f..a38c20657d6 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -49,11 +49,8 @@ #include "pipe/p_defines.h" #include "pipe/p_shader_tokens.h" #include "draw/draw_context.h" -#include "tgsi/tgsi_dump.h" #include "tgsi/tgsi_parse.h" #include "tgsi/tgsi_ureg.h" -#include "nir_builder.h" -#include "nir/nir_to_tgsi.h" #include "util/u_memory.h" @@ -503,37 +500,17 @@ struct pipe_shader_state * st_create_nir_shader(struct st_context *st, struct pipe_shader_state *state) { struct pipe_context *pipe = st->pipe; - struct pipe_screen *screen = st->screen; assert(state->type == PIPE_SHADER_IR_NIR); nir_shader *nir = state->ir.nir; struct shader_info info = nir->info; gl_shader_stage stage = nir->info.stage; - enum pipe_shader_type sh = pipe_shader_type_from_mesa(stage); if (ST_DEBUG & DEBUG_PRINT_IR) { fprintf(stderr, "NIR before handing off to driver:\n"); nir_print_shader(nir, stderr); } - if (PIPE_SHADER_IR_NIR != - screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_PREFERRED_IR)) { - /* u_screen.c defaults to images as deref enabled for some reason (which - * is what radeonsi wants), but nir-to-tgsi requires lowered images. - */ - if (screen->get_param(screen, PIPE_CAP_NIR_IMAGES_AS_DEREF)) - NIR_PASS_V(nir, gl_nir_lower_images, false); - - state->type = PIPE_SHADER_IR_TGSI; - state->tokens = nir_to_tgsi(nir, screen); - - if (ST_DEBUG & DEBUG_PRINT_IR) { - fprintf(stderr, "TGSI for driver after nir-to-tgsi:\n"); - tgsi_dump(state->tokens, 0); - fprintf(stderr, "\n"); - } - } - struct pipe_shader_state *shader; switch (stage) { case MESA_SHADER_VERTEX: