From aa12b9bb8386dad4949ec038aa5edd8912f70cc1 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Tue, 21 Jan 2025 17:22:21 +0800 Subject: [PATCH] crocus: remove shader and compute 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/crocus/crocus_screen.c | 165 --------------------- 1 file changed, 165 deletions(-) diff --git a/src/gallium/drivers/crocus/crocus_screen.c b/src/gallium/drivers/crocus/crocus_screen.c index 82d2e5cfef8..4e671cbec2f 100644 --- a/src/gallium/drivers/crocus/crocus_screen.c +++ b/src/gallium/drivers/crocus/crocus_screen.c @@ -134,169 +134,6 @@ get_aperture_size(int fd) return aperture.aper_size; } -static int -crocus_get_shader_param(struct pipe_screen *pscreen, - enum pipe_shader_type p_stage, - enum pipe_shader_cap param) -{ - gl_shader_stage stage = stage_from_pipe(p_stage); - struct crocus_screen *screen = (struct crocus_screen *)pscreen; - const struct intel_device_info *devinfo = &screen->devinfo; - - if (p_stage == PIPE_SHADER_MESH || - p_stage == PIPE_SHADER_TASK) - return 0; - - if (devinfo->ver < 6 && - p_stage != PIPE_SHADER_VERTEX && - p_stage != PIPE_SHADER_FRAGMENT) - return 0; - - if (devinfo->ver == 6 && - p_stage != PIPE_SHADER_VERTEX && - p_stage != PIPE_SHADER_FRAGMENT && - p_stage != PIPE_SHADER_GEOMETRY) - return 0; - - /* this is probably not totally correct.. but it's a start: */ - switch (param) { - case PIPE_SHADER_CAP_MAX_INSTRUCTIONS: - return stage == MESA_SHADER_FRAGMENT ? 1024 : 16384; - case PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS: - case PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS: - case PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS: - return stage == MESA_SHADER_FRAGMENT ? 1024 : 0; - - case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH: - return UINT_MAX; - - case PIPE_SHADER_CAP_MAX_INPUTS: - if (stage == MESA_SHADER_VERTEX || - stage == MESA_SHADER_GEOMETRY) - return 16; /* Gen7 vec4 geom backend */ - return 32; - case PIPE_SHADER_CAP_MAX_OUTPUTS: - return 32; - case PIPE_SHADER_CAP_MAX_CONST_BUFFER0_SIZE: - return 16 * 1024 * sizeof(float); - case PIPE_SHADER_CAP_MAX_CONST_BUFFERS: - return devinfo->ver >= 6 ? 16 : 1; - case PIPE_SHADER_CAP_MAX_TEMPS: - return 256; /* GL_MAX_PROGRAM_TEMPORARIES_ARB */ - case PIPE_SHADER_CAP_CONT_SUPPORTED: - return 0; - case PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR: - case PIPE_SHADER_CAP_INDIRECT_CONST_ADDR: - /* Lie about these to avoid st/mesa's GLSL IR lowering of indirects, - * which we don't want. Our compiler backend will check elk_compiler's - * options and call nir_lower_indirect_derefs appropriately anyway. - */ - return true; - case PIPE_SHADER_CAP_SUBROUTINES: - return 0; - case PIPE_SHADER_CAP_INTEGERS: - return 1; - case PIPE_SHADER_CAP_INT64_ATOMICS: - case PIPE_SHADER_CAP_FP16: - return 0; - case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS: - case PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS: - return (devinfo->verx10 >= 75) ? CROCUS_MAX_TEXTURE_SAMPLERS : 16; - case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: - if (devinfo->ver >= 7 && - (p_stage == PIPE_SHADER_FRAGMENT || - p_stage == PIPE_SHADER_COMPUTE)) - return CROCUS_MAX_TEXTURE_SAMPLERS; - return 0; - case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS: - return devinfo->ver >= 7 ? (CROCUS_MAX_ABOS + CROCUS_MAX_SSBOS) : 0; - case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS: - case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS: - return 0; - case PIPE_SHADER_CAP_SUPPORTED_IRS: - return 1 << PIPE_SHADER_IR_NIR; - case PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE: - case PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED: - case PIPE_SHADER_CAP_FP16_DERIVATIVES: - case PIPE_SHADER_CAP_INT16: - case PIPE_SHADER_CAP_GLSL_16BIT_CONSTS: - case PIPE_SHADER_CAP_FP16_CONST_BUFFERS: - return 0; - default: - unreachable("unknown shader param"); - } -} - -static int -crocus_get_compute_param(struct pipe_screen *pscreen, - enum pipe_compute_cap param, - void *ret) -{ - struct crocus_screen *screen = (struct crocus_screen *)pscreen; - const struct intel_device_info *devinfo = &screen->devinfo; - - const uint32_t max_invocations = 32 * devinfo->max_cs_workgroup_threads; - - if (devinfo->ver < 7) - return 0; -#define RET(x) do { \ - if (ret) \ - memcpy(ret, x, sizeof(x)); \ - return sizeof(x); \ -} while (0) - - switch (param) { - case PIPE_COMPUTE_CAP_ADDRESS_BITS: - RET((uint32_t []){ 32 }); - - case PIPE_COMPUTE_CAP_IR_TARGET: - if (ret) - strcpy(ret, "gen"); - return 4; - - case PIPE_COMPUTE_CAP_GRID_DIMENSION: - RET((uint64_t []) { 3 }); - - case PIPE_COMPUTE_CAP_MAX_GRID_SIZE: - RET(((uint64_t []) { 65535, 65535, 65535 })); - - case PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE: - /* MaxComputeWorkGroupSize[0..2] */ - RET(((uint64_t []) {max_invocations, max_invocations, max_invocations})); - - case PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK: - /* MaxComputeWorkGroupInvocations */ - RET((uint64_t []) { max_invocations }); - - case PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE: - /* MaxComputeSharedMemorySize */ - RET((uint64_t []) { 64 * 1024 }); - - case PIPE_COMPUTE_CAP_IMAGES_SUPPORTED: - RET((uint32_t []) { 1 }); - - case PIPE_COMPUTE_CAP_SUBGROUP_SIZES: - RET((uint32_t []) { ELK_SUBGROUP_SIZE }); - - case PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK: - RET((uint64_t []) { max_invocations }); - - case PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE: - case PIPE_COMPUTE_CAP_MAX_CLOCK_FREQUENCY: - case PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS: - case PIPE_COMPUTE_CAP_MAX_GLOBAL_SIZE: - case PIPE_COMPUTE_CAP_MAX_PRIVATE_SIZE: - case PIPE_COMPUTE_CAP_MAX_INPUT_SIZE: - case PIPE_COMPUTE_CAP_MAX_SUBGROUPS: - - // XXX: I think these are for Clover... - return 0; - - default: - unreachable("unknown compute param"); - } -} - static void crocus_init_shader_caps(struct crocus_screen *screen) { @@ -809,8 +646,6 @@ crocus_screen_create(int fd, const struct pipe_screen_config *config) pscreen->get_vendor = crocus_get_vendor; pscreen->get_device_vendor = crocus_get_device_vendor; pscreen->get_screen_fd = crocus_screen_get_fd; - pscreen->get_shader_param = crocus_get_shader_param; - pscreen->get_compute_param = crocus_get_compute_param; pscreen->get_compiler_options = crocus_get_compiler_options; pscreen->get_device_uuid = crocus_get_device_uuid; pscreen->get_driver_uuid = crocus_get_driver_uuid;