mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 21:40:20 +01:00
etnaviv: remove etna_screen_get_param and etna_screen_get_paramf
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32955>
This commit is contained in:
parent
90594a00a9
commit
efdbd4c84c
1 changed files with 0 additions and 224 deletions
|
|
@ -149,228 +149,6 @@ etna_screen_get_device_vendor(struct pipe_screen *pscreen)
|
|||
return "Vivante";
|
||||
}
|
||||
|
||||
static int
|
||||
etna_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||
{
|
||||
struct etna_screen *screen = etna_screen(pscreen);
|
||||
|
||||
switch (param) {
|
||||
/* Supported features (boolean caps). */
|
||||
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
|
||||
case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT:
|
||||
case PIPE_CAP_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
|
||||
case PIPE_CAP_FRAGMENT_SHADER_TEXTURE_LOD:
|
||||
case PIPE_CAP_FRAGMENT_SHADER_DERIVATIVES:
|
||||
case PIPE_CAP_TEXTURE_BARRIER:
|
||||
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
|
||||
case PIPE_CAP_TGSI_TEXCOORD:
|
||||
case PIPE_CAP_VERTEX_COLOR_UNCLAMPED:
|
||||
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
|
||||
case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
|
||||
case PIPE_CAP_STRING_MARKER:
|
||||
case PIPE_CAP_FRONTEND_NOOP:
|
||||
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
|
||||
return 1;
|
||||
case PIPE_CAP_VERTEX_INPUT_ALIGNMENT:
|
||||
return PIPE_VERTEX_INPUT_ALIGNMENT_4BYTE;
|
||||
case PIPE_CAP_NATIVE_FENCE_FD:
|
||||
return screen->drm_version >= ETNA_DRM_VERSION_FENCE_FD;
|
||||
case PIPE_CAP_FS_POSITION_IS_SYSVAL:
|
||||
case PIPE_CAP_FS_FACE_IS_INTEGER_SYSVAL: /* note: not integer */
|
||||
return 1;
|
||||
case PIPE_CAP_FS_POINT_IS_SYSVAL:
|
||||
return 0;
|
||||
|
||||
/* Memory */
|
||||
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
|
||||
return 256;
|
||||
case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
|
||||
return 4096;
|
||||
|
||||
case PIPE_CAP_NPOT_TEXTURES:
|
||||
return true; /* VIV_FEATURE(priv->dev, chipMinorFeatures1,
|
||||
NON_POWER_OF_TWO); */
|
||||
|
||||
case PIPE_CAP_ANISOTROPIC_FILTER:
|
||||
case PIPE_CAP_TEXTURE_SWIZZLE:
|
||||
case PIPE_CAP_PRIMITIVE_RESTART:
|
||||
case PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX:
|
||||
return VIV_FEATURE(screen, ETNA_FEATURE_HALTI0);
|
||||
|
||||
case PIPE_CAP_ALPHA_TEST:
|
||||
return !VIV_FEATURE(screen, ETNA_FEATURE_PE_NO_ALPHA_TEST);
|
||||
|
||||
case PIPE_CAP_DRAW_INDIRECT:
|
||||
return VIV_FEATURE(screen, ETNA_FEATURE_HALTI5);
|
||||
|
||||
/* Unsupported features. */
|
||||
case PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT:
|
||||
case PIPE_CAP_TEXRECT:
|
||||
return 0;
|
||||
|
||||
/* Stream output. */
|
||||
case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
|
||||
return DBG_ENABLED(ETNA_DBG_DEQP) ? 4 : 0;
|
||||
case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
|
||||
case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
|
||||
return 0;
|
||||
|
||||
case PIPE_CAP_MAX_VERTEX_ATTRIB_STRIDE:
|
||||
return 128;
|
||||
case PIPE_CAP_MAX_VERTEX_ELEMENT_SRC_OFFSET:
|
||||
return 255;
|
||||
case PIPE_CAP_MAX_VERTEX_BUFFERS:
|
||||
return screen->info->gpu.stream_count;
|
||||
case PIPE_CAP_VS_INSTANCEID:
|
||||
case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
|
||||
return VIV_FEATURE(screen, ETNA_FEATURE_HALTI2);
|
||||
|
||||
|
||||
/* Texturing. */
|
||||
case PIPE_CAP_TEXTURE_HALF_FLOAT_LINEAR:
|
||||
return VIV_FEATURE(screen, ETNA_FEATURE_HALF_FLOAT);
|
||||
case PIPE_CAP_TEXTURE_SHADOW_MAP:
|
||||
return 1;
|
||||
case PIPE_CAP_MAX_TEXTURE_2D_SIZE:
|
||||
return screen->specs.max_texture_size;
|
||||
case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS: /* TODO: verify */
|
||||
return screen->info->halti >= 0 ? screen->specs.max_texture_size : 0;
|
||||
case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
|
||||
if (screen->info->halti < 0)
|
||||
return 0;
|
||||
FALLTHROUGH;
|
||||
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
|
||||
{
|
||||
int log2_max_tex_size = util_last_bit(screen->specs.max_texture_size);
|
||||
assert(log2_max_tex_size > 0);
|
||||
return log2_max_tex_size;
|
||||
}
|
||||
|
||||
case PIPE_CAP_MIN_TEXTURE_GATHER_OFFSET:
|
||||
case PIPE_CAP_MIN_TEXEL_OFFSET:
|
||||
return -8;
|
||||
case PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET:
|
||||
case PIPE_CAP_MAX_TEXEL_OFFSET:
|
||||
return 7;
|
||||
case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
|
||||
return screen->specs.seamless_cube_map;
|
||||
|
||||
/* Render targets. */
|
||||
case PIPE_CAP_MAX_RENDER_TARGETS: {
|
||||
/* If the GPU supports float formats we need to reserve half of
|
||||
* the available render targets for emulation proposes.
|
||||
*/
|
||||
if (VIV_FEATURE(screen, ETNA_FEATURE_HALTI2))
|
||||
return screen->specs.num_rts / 2;
|
||||
|
||||
return screen->specs.num_rts;
|
||||
}
|
||||
case PIPE_CAP_INDEP_BLEND_ENABLE:
|
||||
case PIPE_CAP_INDEP_BLEND_FUNC:
|
||||
return screen->info->halti >= 5;
|
||||
|
||||
/* Queries. */
|
||||
case PIPE_CAP_OCCLUSION_QUERY:
|
||||
case PIPE_CAP_CONDITIONAL_RENDER:
|
||||
case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
|
||||
return VIV_FEATURE(screen, ETNA_FEATURE_HALTI0);
|
||||
|
||||
/* Preferences */
|
||||
case PIPE_CAP_TEXTURE_TRANSFER_MODES:
|
||||
return 0;
|
||||
case PIPE_CAP_MAX_TEXTURE_UPLOAD_MEMORY_BUDGET: {
|
||||
/* etnaviv is being run on systems as small as 256MB total RAM so
|
||||
* we need to provide a sane value for such a device. Limit the
|
||||
* memory budget to min(~3% of pyhiscal memory, 64MB).
|
||||
*
|
||||
* a simple divison by 32 provides the numbers we want.
|
||||
* 256MB / 32 = 8MB
|
||||
* 2048MB / 32 = 64MB
|
||||
*/
|
||||
uint64_t system_memory;
|
||||
|
||||
if (!os_get_total_physical_memory(&system_memory))
|
||||
system_memory = (uint64_t)4096 << 20;
|
||||
|
||||
return MIN2(system_memory / 32, 64 * 1024 * 1024);
|
||||
}
|
||||
|
||||
case PIPE_CAP_MAX_VARYINGS:
|
||||
return screen->specs.max_varyings;
|
||||
|
||||
case PIPE_CAP_SUPPORTED_PRIM_MODES:
|
||||
case PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART: {
|
||||
/* Generate the bitmask of supported draw primitives. */
|
||||
uint32_t modes = 1 << MESA_PRIM_POINTS |
|
||||
1 << MESA_PRIM_LINES |
|
||||
1 << MESA_PRIM_LINE_STRIP |
|
||||
1 << MESA_PRIM_TRIANGLES |
|
||||
1 << MESA_PRIM_TRIANGLE_FAN;
|
||||
|
||||
/* TODO: The bug relates only to indexed draws, but here we signal
|
||||
* that there is no support for triangle strips at all. This should
|
||||
* be refined.
|
||||
*/
|
||||
if (VIV_FEATURE(screen, ETNA_FEATURE_BUG_FIXES8))
|
||||
modes |= 1 << MESA_PRIM_TRIANGLE_STRIP;
|
||||
|
||||
if (VIV_FEATURE(screen, ETNA_FEATURE_LINE_LOOP))
|
||||
modes |= 1 << MESA_PRIM_LINE_LOOP;
|
||||
|
||||
return modes;
|
||||
}
|
||||
|
||||
case PIPE_CAP_PCI_GROUP:
|
||||
case PIPE_CAP_PCI_BUS:
|
||||
case PIPE_CAP_PCI_DEVICE:
|
||||
case PIPE_CAP_PCI_FUNCTION:
|
||||
return 0;
|
||||
case PIPE_CAP_ACCELERATED:
|
||||
return 1;
|
||||
case PIPE_CAP_VIDEO_MEMORY:
|
||||
return 0;
|
||||
case PIPE_CAP_UMA:
|
||||
return 1;
|
||||
case PIPE_CAP_GRAPHICS:
|
||||
return !VIV_FEATURE(screen, ETNA_FEATURE_COMPUTE_ONLY);
|
||||
default:
|
||||
return u_pipe_screen_get_param_defaults(pscreen, param);
|
||||
}
|
||||
}
|
||||
|
||||
static float
|
||||
etna_screen_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
|
||||
{
|
||||
struct etna_screen *screen = etna_screen(pscreen);
|
||||
|
||||
switch (param) {
|
||||
case PIPE_CAPF_MIN_LINE_WIDTH:
|
||||
case PIPE_CAPF_MIN_LINE_WIDTH_AA:
|
||||
case PIPE_CAPF_MIN_POINT_SIZE:
|
||||
case PIPE_CAPF_MIN_POINT_SIZE_AA:
|
||||
return 1;
|
||||
case PIPE_CAPF_POINT_SIZE_GRANULARITY:
|
||||
case PIPE_CAPF_LINE_WIDTH_GRANULARITY:
|
||||
return 0.1;
|
||||
case PIPE_CAPF_MAX_LINE_WIDTH:
|
||||
case PIPE_CAPF_MAX_LINE_WIDTH_AA:
|
||||
case PIPE_CAPF_MAX_POINT_SIZE:
|
||||
case PIPE_CAPF_MAX_POINT_SIZE_AA:
|
||||
return 8192.0f;
|
||||
case PIPE_CAPF_MAX_TEXTURE_ANISOTROPY:
|
||||
return 16.0f;
|
||||
case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS:
|
||||
return util_last_bit(screen->specs.max_texture_size);
|
||||
case PIPE_CAPF_MIN_CONSERVATIVE_RASTER_DILATE:
|
||||
case PIPE_CAPF_MAX_CONSERVATIVE_RASTER_DILATE:
|
||||
case PIPE_CAPF_CONSERVATIVE_RASTER_DILATE_GRANULARITY:
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
debug_printf("unknown paramf %d", param);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
etna_screen_get_shader_param(struct pipe_screen *pscreen,
|
||||
enum pipe_shader_type shader,
|
||||
|
|
@ -1288,8 +1066,6 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
|
|||
|
||||
pscreen->destroy = etna_screen_destroy;
|
||||
pscreen->get_screen_fd = etna_screen_get_fd;
|
||||
pscreen->get_param = etna_screen_get_param;
|
||||
pscreen->get_paramf = etna_screen_get_paramf;
|
||||
pscreen->get_shader_param = etna_screen_get_shader_param;
|
||||
pscreen->get_compiler_options = etna_get_compiler_options;
|
||||
pscreen->get_disk_shader_cache = etna_get_disk_shader_cache;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue