From 809b5728a20758af598e7e2686cbd3876bdc2412 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Wed, 22 Jan 2025 10:00:32 +0800 Subject: [PATCH] r300: remove shader get param MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Acked-by: Alyssa Rosenzweig Acked-by: Marek Olšák Part-of: --- src/gallium/drivers/r300/r300_screen.c | 164 ------------------------- 1 file changed, 164 deletions(-) diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index f0f116a15db..51eb7aa48cd 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -105,169 +105,6 @@ static struct disk_cache* r300_get_disk_shader_cache(struct pipe_screen* pscreen return r300screen->disk_shader_cache; } -static int r300_get_shader_param(struct pipe_screen *pscreen, - enum pipe_shader_type shader, - enum pipe_shader_cap param) -{ - struct r300_screen* r300screen = r300_screen(pscreen); - bool is_r400 = r300screen->caps.is_r400; - bool is_r500 = r300screen->caps.is_r500; - - switch (param) { - case PIPE_SHADER_CAP_SUPPORTED_IRS: - return (1 << PIPE_SHADER_IR_NIR) | (1 << PIPE_SHADER_IR_TGSI); - default: - break; - } - - switch (shader) { - case PIPE_SHADER_FRAGMENT: - switch (param) - { - case PIPE_SHADER_CAP_MAX_INSTRUCTIONS: - return is_r500 || is_r400 ? 512 : 96; - case PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS: - return is_r500 || is_r400 ? 512 : 64; - case PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS: - return is_r500 || is_r400 ? 512 : 32; - case PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS: - return is_r500 ? 511 : 4; - case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH: - return is_r500 ? 64 : 0; /* Actually unlimited on r500. */ - /* Fragment shader limits. */ - case PIPE_SHADER_CAP_MAX_INPUTS: - /* 2 colors + 8 texcoords are always supported - * (minus fog and wpos). - * - * R500 has the ability to turn 3rd and 4th color into - * additional texcoords but there is no two-sided color - * selection then. However the facing bit can be used instead. */ - return 10; - case PIPE_SHADER_CAP_MAX_OUTPUTS: - return 4; - case PIPE_SHADER_CAP_MAX_CONST_BUFFER0_SIZE: - return (is_r500 ? 256 : 32) * sizeof(float[4]); - case PIPE_SHADER_CAP_MAX_CONST_BUFFERS: - case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE: - return 1; - case PIPE_SHADER_CAP_MAX_TEMPS: - return is_r500 ? 128 : is_r400 ? 64 : 32; - case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: - case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: - return r300screen->caps.num_tex_units; - case PIPE_SHADER_CAP_CONT_SUPPORTED: - case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: - case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR: - case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR: - case PIPE_SHADER_CAP_SUBROUTINES: - case PIPE_SHADER_CAP_INTEGERS: - case PIPE_SHADER_CAP_INT64_ATOMICS: - case PIPE_SHADER_CAP_FP16: - case PIPE_SHADER_CAP_FP16_DERIVATIVES: - case PIPE_SHADER_CAP_FP16_CONST_BUFFERS: - case PIPE_SHADER_CAP_INT16: - case PIPE_SHADER_CAP_GLSL_16BIT_CONSTS: - case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS: - case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: - case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS: - case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS: - return 0; - default: - break; - } - break; - case PIPE_SHADER_VERTEX: - switch (param) - { - case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: - case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: - case PIPE_SHADER_CAP_SUBROUTINES: - return 0; - default:; - } - - if (!r300screen->caps.has_tcl) { - switch (param) { - case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS: - case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: - return 0; - - /* mesa/st requires that this cap is the same across stages, and the FS - * can't do ints. - */ - case PIPE_SHADER_CAP_INTEGERS: - return 0; - - /* Even if gallivm NIR can do this, we call nir_to_tgsi manually and - * TGSI can't. - */ - case PIPE_SHADER_CAP_INT16: - case PIPE_SHADER_CAP_FP16: - case PIPE_SHADER_CAP_FP16_DERIVATIVES: - case PIPE_SHADER_CAP_FP16_CONST_BUFFERS: - return 0; - - /* While draw could normally handle this for the VS, the NIR lowering - * to regs can't handle our non-native-integers, so we have to lower to - * if ladders. - */ - case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR: - return 0; - default: - return draw_get_shader_param(shader, param); - } - } - - switch (param) - { - case PIPE_SHADER_CAP_MAX_INSTRUCTIONS: - case PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS: - return is_r500 ? 1024 : 256; - case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH: - return is_r500 ? 4 : 0; /* For loops; not sure about conditionals. */ - case PIPE_SHADER_CAP_MAX_INPUTS: - return 16; - case PIPE_SHADER_CAP_MAX_OUTPUTS: - return 10; - case PIPE_SHADER_CAP_MAX_CONST_BUFFER0_SIZE: - return 256 * sizeof(float[4]); - case PIPE_SHADER_CAP_MAX_CONST_BUFFERS: - return 1; - case PIPE_SHADER_CAP_MAX_TEMPS: - return 32; - case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR: - case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE: - return 1; - case PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS: - case PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS: - case PIPE_SHADER_CAP_CONT_SUPPORTED: - case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: - case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR: - case PIPE_SHADER_CAP_SUBROUTINES: - case PIPE_SHADER_CAP_INTEGERS: - case PIPE_SHADER_CAP_FP16: - case PIPE_SHADER_CAP_FP16_CONST_BUFFERS: - case PIPE_SHADER_CAP_FP16_DERIVATIVES: - case PIPE_SHADER_CAP_INT16: - case PIPE_SHADER_CAP_GLSL_16BIT_CONSTS: - case PIPE_SHADER_CAP_INT64_ATOMICS: - case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: - case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: - case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS: - case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: - case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS: - case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS: - return 0; - default: - break; - } - break; - default: - ; /* nothing */ - } - return 0; -} - static int r300_get_video_param(struct pipe_screen *screen, enum pipe_video_profile profile, enum pipe_video_entrypoint entrypoint, @@ -879,7 +716,6 @@ struct pipe_screen* r300_screen_create(struct radeon_winsys *rws, r300screen->screen.get_device_vendor = r300_get_device_vendor; r300screen->screen.get_disk_shader_cache = r300_get_disk_shader_cache; r300screen->screen.get_screen_fd = r300_screen_get_fd; - r300screen->screen.get_shader_param = r300_get_shader_param; r300screen->screen.get_video_param = r300_get_video_param; r300screen->screen.is_format_supported = r300_is_format_supported; r300screen->screen.is_video_format_supported = vl_video_buffer_is_format_supported;