mesa/st: rip out point-sprite cap

All current drivers reports supporting this cap, let's just assume
it's always supported.

It seems better to lower this in the drivers, like we already do for
etnaviv, panfrost and zink...

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Begrudgingly-reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19049>
This commit is contained in:
Erik Faye-Lund 2022-10-12 12:54:30 +02:00 committed by Marge Bot
parent b0d698c532
commit 310959d9fe
30 changed files with 3 additions and 62 deletions

View file

@ -29,7 +29,6 @@ The integer capabilities:
* ``PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS``: How many dual-source blend RTs are support.
:ref:`Blend` for more information.
* ``PIPE_CAP_ANISOTROPIC_FILTER``: Whether textures can be filtered anisotropically.
* ``PIPE_CAP_POINT_SPRITE``: Whether point sprites are available.
* ``PIPE_CAP_MAX_RENDER_TARGETS``: The maximum number of render targets that may be
bound.
* ``PIPE_CAP_OCCLUSION_QUERY``: Whether occlusion queries are available.

View file

@ -43,7 +43,6 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen,
case PIPE_CAP_NPOT_TEXTURES:
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
return 0;
case PIPE_CAP_GRAPHICS:

View file

@ -141,7 +141,6 @@ crocus_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
switch (param) {
case PIPE_CAP_NPOT_TEXTURES:
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_TEXTURE_SWIZZLE:
case PIPE_CAP_TEXTURE_MIRROR_CLAMP_TO_EDGE:

View file

@ -272,7 +272,6 @@ d3d12_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_VS_INSTANCEID:
case PIPE_CAP_TGSI_TEX_TXF_LZ:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_VIEWPORT_TRANSFORM_LOWERED:
case PIPE_CAP_PSIZ_CLAMPED:
case PIPE_CAP_BLEND_EQUATION_SEPARATE:

View file

@ -143,7 +143,6 @@ etna_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
switch (param) {
/* Supported features (boolean caps). */
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_FS_COORD_PIXEL_CENTER_HALF_INTEGER:

View file

@ -192,7 +192,6 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_NPOT_TEXTURES:
case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
case PIPE_CAP_TEXTURE_SWIZZLE:
case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:

View file

@ -393,7 +393,6 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_NPOT_TEXTURES:
case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_PRIMITIVE_RESTART: /* draw module */
case PIPE_CAP_PRIMITIVE_RESTART_FIXED_INDEX:
case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:

View file

@ -192,7 +192,6 @@ iris_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
switch (param) {
case PIPE_CAP_NPOT_TEXTURES:
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_QUERY_TIME_ELAPSED:
case PIPE_CAP_TEXTURE_SWIZZLE:

View file

@ -111,10 +111,6 @@ lima_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_SURFACE_SAMPLE_COUNT:
return 1;
/* Unimplemented, but for exporting OpenGL 2.0 */
case PIPE_CAP_POINT_SPRITE:
return 1;
/* not clear supported */
case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_FS_COORD_ORIGIN_LOWER_LEFT:

View file

@ -131,8 +131,6 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
return 1;
case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
return PIPE_MAX_SO_BUFFERS;
case PIPE_CAP_POINT_SPRITE:
return 1;
case PIPE_CAP_MAX_RENDER_TARGETS:
return PIPE_MAX_COLOR_BUFS;
case PIPE_CAP_OCCLUSION_QUERY:

View file

@ -85,7 +85,6 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
/* supported capabilities */
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_QUERY_TIME_ELAPSED:
case PIPE_CAP_QUERY_TIMESTAMP:

View file

@ -206,7 +206,6 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_TEXTURE_BUFFER_OBJECTS:
case PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT:
case PIPE_CAP_DEPTH_CLIP_DISABLE:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_FRAGMENT_SHADER_TEXTURE_LOD:
case PIPE_CAP_FRAGMENT_SHADER_DERIVATIVES:
case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:

View file

@ -226,7 +226,6 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_TEXTURE_BUFFER_OBJECTS:
case PIPE_CAP_TEXTURE_MULTISAMPLE:
case PIPE_CAP_DEPTH_CLIP_DISABLE:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_TGSI_TEXCOORD:
case PIPE_CAP_FRAGMENT_SHADER_TEXTURE_LOD:
case PIPE_CAP_FRAGMENT_SHADER_DERIVATIVES:

View file

@ -113,7 +113,6 @@ panfrost_get_param(struct pipe_screen *screen, enum pipe_cap param)
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
case PIPE_CAP_FRAGMENT_SHADER_TEXTURE_LOD:
case PIPE_CAP_VERTEX_COLOR_UNCLAMPED:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_DEPTH_CLIP_DISABLE:
case PIPE_CAP_DEPTH_CLIP_DISABLE_SEPARATE:
case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:

View file

@ -130,7 +130,6 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
case PIPE_CAP_TEXTURE_MIRROR_CLAMP_TO_EDGE:

View file

@ -263,7 +263,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
case PIPE_CAP_TEXTURE_MIRROR_CLAMP_TO_EDGE:

View file

@ -57,7 +57,6 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_ACCELERATED:
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
case PIPE_CAP_ANISOTROPIC_FILTER:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
case PIPE_CAP_TEXTURE_SHADOW_LOD:

View file

@ -121,8 +121,6 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
return 1;
case PIPE_CAP_ANISOTROPIC_FILTER:
return 1;
case PIPE_CAP_POINT_SPRITE:
return 1;
case PIPE_CAP_MAX_RENDER_TARGETS:
return PIPE_MAX_COLOR_BUFS;
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:

View file

@ -216,8 +216,6 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
return sws->have_vgpu10 ? 1 : 0;
case PIPE_CAP_ANISOTROPIC_FILTER:
return 1;
case PIPE_CAP_POINT_SPRITE:
return 1;
case PIPE_CAP_MAX_RENDER_TARGETS:
return svgascreen->max_color_buffers;
case PIPE_CAP_OCCLUSION_QUERY:

View file

@ -131,7 +131,6 @@ v3d_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART:
case PIPE_CAP_PRIMITIVE_RESTART:
case PIPE_CAP_OCCLUSION_QUERY:
case PIPE_CAP_POINT_SPRITE:
case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
case PIPE_CAP_DRAW_INDIRECT:
case PIPE_CAP_MULTI_DRAW_INDIRECT:

View file

@ -156,10 +156,6 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
return vc4_has_feature(screen,
DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER);
/* lying for GL 2.0 */
case PIPE_CAP_POINT_SPRITE:
return 1;
case PIPE_CAP_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
case PIPE_CAP_FS_FACE_IS_INTEGER_SYSVAL:

View file

@ -89,8 +89,6 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param)
return 1;
case PIPE_CAP_ANISOTROPIC_FILTER:
return vscreen->caps.caps.v2.max_anisotropy > 1.0;
case PIPE_CAP_POINT_SPRITE:
return 1;
case PIPE_CAP_MAX_RENDER_TARGETS:
return vscreen->caps.caps.v1.max_render_targets;
case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:

View file

@ -587,9 +587,6 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_SHADER_CLOCK:
return screen->info.have_KHR_shader_clock;
case PIPE_CAP_POINT_SPRITE:
return 1;
case PIPE_CAP_SHADER_BALLOT:
if (screen->info.props11.subgroupSize > 64)
return false;

View file

@ -730,7 +730,6 @@ enum pipe_cap
PIPE_CAP_NPOT_TEXTURES,
PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS,
PIPE_CAP_ANISOTROPIC_FILTER,
PIPE_CAP_POINT_SPRITE,
PIPE_CAP_MAX_RENDER_TARGETS,
PIPE_CAP_OCCLUSION_QUERY,
PIPE_CAP_QUERY_TIME_ELAPSED,

View file

@ -144,11 +144,6 @@ st_update_fp( struct st_context *st )
key.lower_two_sided_color = st->lower_two_sided_color &&
_mesa_vertex_program_two_side_enabled(st->ctx);
/* _NEW_POINT | _NEW_PROGRAM */
if (st->lower_texcoord_replace && st->ctx->Point.PointSprite &&
st->ctx->Point.CoordReplace)
key.lower_texcoord_replace = st->ctx->Point.CoordReplace;
/* gl_driver_flags::NewFragClamp */
key.clamp_color = st->clamp_frag_color_in_shader &&
st->ctx->Color._ClampFragmentColor;

View file

@ -156,9 +156,6 @@ st_invalidate_state(struct gl_context *ctx)
st_user_clip_planes_enabled(ctx))
st->dirty |= ST_NEW_CLIP_STATE;
if (new_state & _NEW_POINT && st->lower_texcoord_replace)
st->dirty |= ST_NEW_FS_STATE;
if (new_state & _NEW_PIXEL)
st->dirty |= ST_NEW_PIXEL_TRANSFER;
@ -650,8 +647,6 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe,
screen->get_param(screen, PIPE_CAP_PREFER_REAL_BUFFER_IN_CONSTBUF0);
st->has_conditional_render =
screen->get_param(screen, PIPE_CAP_CONDITIONAL_RENDER);
st->lower_texcoord_replace =
!screen->get_param(screen, PIPE_CAP_POINT_SPRITE);
st->lower_rect_tex =
!screen->get_param(screen, PIPE_CAP_TEXRECT);
st->allow_st_finalize_nir_twice = screen->finalize_nir != NULL;
@ -739,8 +734,7 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe,
!st->lower_alpha_test &&
!st->clamp_frag_color_in_shader &&
!st->force_persample_in_shader &&
!st->lower_two_sided_color &&
!st->lower_texcoord_replace;
!st->lower_two_sided_color;
st->shader_has_one_variant[MESA_SHADER_TESS_CTRL] = st->has_shareable_shaders;
st->shader_has_one_variant[MESA_SHADER_TESS_EVAL] =

View file

@ -168,7 +168,6 @@ struct st_context
boolean lower_ucp;
boolean prefer_real_buffer_in_constbuf0;
boolean has_conditional_render;
boolean lower_texcoord_replace;
boolean lower_rect_tex;
/* There are consequences for drivers wanting to call st_finalize_nir

View file

@ -782,7 +782,6 @@ void st_init_extensions(struct pipe_screen *screen,
{ o(ARB_occlusion_query2), PIPE_CAP_OCCLUSION_QUERY },
{ o(ARB_pipeline_statistics_query), PIPE_CAP_QUERY_PIPELINE_STATISTICS },
{ o(ARB_pipeline_statistics_query), PIPE_CAP_QUERY_PIPELINE_STATISTICS_SINGLE },
{ o(ARB_point_sprite), PIPE_CAP_POINT_SPRITE },
{ o(ARB_polygon_offset_clamp), PIPE_CAP_POLYGON_OFFSET_CLAMP },
{ o(ARB_post_depth_coverage), PIPE_CAP_POST_DEPTH_COVERAGE },
{ o(ARB_query_buffer_object), PIPE_CAP_QUERY_BUFFER_OBJECT },
@ -1847,6 +1846,5 @@ void st_init_extensions(struct pipe_screen *screen,
!(nir_options->lower_doubles_options & nir_lower_fp64_full_software))
extensions->NV_copy_depth_to_color = TRUE;
if (prefer_nir)
extensions->ARB_point_sprite = GL_TRUE;
extensions->ARB_point_sprite = GL_TRUE;
}

View file

@ -938,13 +938,6 @@ st_create_fp_variant(struct st_context *st,
finalize = true;
}
if (key->lower_texcoord_replace) {
bool point_coord_is_sysval = st->ctx->Const.GLSLPointCoordIsSysVal;
NIR_PASS_V(state.ir.nir, nir_lower_texcoord_replace,
key->lower_texcoord_replace, point_coord_is_sysval, false);
finalize = true;
}
if (st->emulate_gl_clamp &&
(key->gl_clamp[0] || key->gl_clamp[1] || key->gl_clamp[2])) {
nir_lower_tex_options tex_opts = {0};
@ -1089,7 +1082,7 @@ st_get_fp_variant(struct st_context *st,
if (fp->variants != NULL) {
_mesa_perf_debug(st->ctx, MESA_DEBUG_SEVERITY_MEDIUM,
"Compiling fragment shader variant (%s%s%s%s%s%s%s%s%s%s%s%s%s)",
"Compiling fragment shader variant (%s%s%s%s%s%s%s%s%s%s%s%s)",
key->bitmap ? "bitmap," : "",
key->drawpixels ? "drawpixels," : "",
key->scaleAndBias ? "scale_bias," : "",
@ -1099,7 +1092,6 @@ st_get_fp_variant(struct st_context *st,
key->fog ? "fog," : "",
key->lower_two_sided_color ? "twoside," : "",
key->lower_flatshade ? "flatshade," : "",
key->lower_texcoord_replace ? "texcoord_replace," : "",
key->lower_alpha_func ? "alpha_compare," : "",
/* skipped ATI_fs targets */
fp->ExternalSamplersUsed ? "external?," : "",

View file

@ -176,7 +176,6 @@ struct st_fp_variant_key
GLuint lower_two_sided_color:1;
GLuint lower_flatshade:1;
GLuint lower_texcoord_replace:MAX_TEXTURE_COORD_UNITS;
unsigned lower_alpha_func:3;
/** needed for ATI_fragment_shader */