mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 09:58:05 +02:00
gallium: add PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
e453fc76e7
commit
34ea55d820
18 changed files with 37 additions and 0 deletions
|
|
@ -93,6 +93,12 @@ The integer capabilities:
|
|||
shader.
|
||||
* ``PIPE_CAP_GLSL_FEATURE_LEVEL``: Whether the driver supports features
|
||||
equivalent to a specific GLSL version. E.g. for GLSL 1.3, report 130.
|
||||
* ``PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY``: Whether the driver supports
|
||||
features equivalent to a specific GLSL version including all legacy OpenGL
|
||||
features only present in the OpenGL compatibility profile.
|
||||
The only legacy features that Gallium drivers must implement are
|
||||
the legacy shader inputs and outputs (colors, texcoords, fog, clipvertex,
|
||||
edgeflag).
|
||||
* ``PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION``: Whether quads adhere to
|
||||
the flatshade_first setting in ``pipe_rasterizer_state``.
|
||||
* ``PIPE_CAP_USER_VERTEX_BUFFERS``: Whether the driver supports user vertex
|
||||
|
|
|
|||
|
|
@ -154,6 +154,7 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
|
||||
return 4; /* XXX could easily be supported */
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 120;
|
||||
|
||||
case PIPE_CAP_NPOT_TEXTURES:
|
||||
|
|
|
|||
|
|
@ -261,6 +261,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
return 64;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
if (glsl120)
|
||||
return 120;
|
||||
return is_ir3(screen) ? 140 : 120;
|
||||
|
|
|
|||
|
|
@ -342,6 +342,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)
|
|||
return 64;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 120;
|
||||
|
||||
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
|
||||
|
|
|
|||
|
|
@ -205,6 +205,8 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
|
|||
return 1;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return 330;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
|
||||
return 0;
|
||||
case PIPE_CAP_COMPUTE:
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
|
||||
return 13;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 120;
|
||||
case PIPE_CAP_ENDIANNESS:
|
||||
return PIPE_ENDIAN_LITTLE;
|
||||
|
|
|
|||
|
|
@ -109,6 +109,8 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
return 128 * 1024 * 1024;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return 330;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
case PIPE_CAP_MAX_RENDER_TARGETS:
|
||||
return 8;
|
||||
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
|
||||
|
|
|
|||
|
|
@ -134,6 +134,8 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
return 128 * 1024 * 1024;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return 430;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
case PIPE_CAP_MAX_RENDER_TARGETS:
|
||||
return 8;
|
||||
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
|
||||
|
|
|
|||
|
|
@ -120,6 +120,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
|
|||
return 16;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 120;
|
||||
|
||||
/* r300 cannot do swizzling of compressed textures. Supported otherwise. */
|
||||
|
|
|
|||
|
|
@ -343,6 +343,9 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
|
|||
return 330;
|
||||
return 140;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
|
||||
/* Supported except the original R600. */
|
||||
case PIPE_CAP_INDEP_BLEND_ENABLE:
|
||||
case PIPE_CAP_INDEP_BLEND_FUNC:
|
||||
|
|
|
|||
|
|
@ -214,6 +214,9 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
return 450;
|
||||
return 420;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
|
||||
case PIPE_CAP_MAX_TEXTURE_BUFFER_SIZE:
|
||||
return MIN2(sscreen->info.max_alloc_size, INT_MAX);
|
||||
|
||||
|
|
|
|||
|
|
@ -151,6 +151,8 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
|
|||
return 0;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return 330;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
|
||||
case PIPE_CAP_TGSI_TEX_TXF_LZ:
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -278,6 +278,9 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
|
|||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return sws->have_vgpu10 ? 330 : 120;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return sws->have_vgpu10 ? 140 : 120;
|
||||
|
||||
case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -183,6 +183,8 @@ swr_get_param(struct pipe_screen *screen, enum pipe_cap param)
|
|||
return 7;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return 330;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
|
||||
return 16;
|
||||
case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
|
||||
|
|
|
|||
|
|
@ -123,6 +123,9 @@ v3d_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return 400;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 140;
|
||||
|
||||
case PIPE_CAP_MAX_VIEWPORTS:
|
||||
return 1;
|
||||
|
||||
|
|
|
|||
|
|
@ -164,6 +164,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
return 256;
|
||||
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return 120;
|
||||
|
||||
case PIPE_CAP_MAX_VIEWPORTS:
|
||||
|
|
|
|||
|
|
@ -133,6 +133,8 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
|
|||
return 1;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL:
|
||||
return vscreen->caps.caps.v1.glsl_level;
|
||||
case PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY:
|
||||
return MIN2(vscreen->caps.caps.v1.glsl_level, 140);
|
||||
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
|
||||
return 0;
|
||||
case PIPE_CAP_COMPUTE:
|
||||
|
|
|
|||
|
|
@ -686,6 +686,7 @@ enum pipe_cap
|
|||
PIPE_CAP_VERTEX_COLOR_UNCLAMPED,
|
||||
PIPE_CAP_VERTEX_COLOR_CLAMPED,
|
||||
PIPE_CAP_GLSL_FEATURE_LEVEL,
|
||||
PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY,
|
||||
PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION,
|
||||
PIPE_CAP_USER_VERTEX_BUFFERS,
|
||||
PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue