gallium: remove PIPE_CAP_SHADER_CAN_READ_OUTPUTS

nir_lower_io_to_temporaries is now done for all stages except TCS, and
nir_lower_io_to_temporaries with a TCS is a no-op.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25590>
This commit is contained in:
Rhys Perry 2023-10-19 15:00:38 +01:00 committed by Marge Bot
parent 767ea18517
commit 57080749f7
9 changed files with 1 additions and 14 deletions

View File

@ -413,8 +413,6 @@ The integer capabilities:
* ``PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS``: Whether interleaved stream
output mode is able to interleave across buffers. This is required for
:ext:`GL_ARB_transform_feedback3`.
* ``PIPE_CAP_SHADER_CAN_READ_OUTPUTS``: Whether every TGSI shader stage can read
from the output file.
* ``PIPE_CAP_FBFETCH``: The number of render targets whose value in the
current framebuffer can be read in the shader. 0 means framebuffer fetch
is not supported. 1 means that only the first render target can be read,

View File

@ -1250,8 +1250,7 @@ preprocess_shader(const struct gl_constants *consts,
nir_shader_get_entrypoint(nir),
true, true);
} else if (nir->info.stage == MESA_SHADER_TESS_EVAL ||
nir->info.stage == MESA_SHADER_FRAGMENT ||
!consts->SupportsReadingOutputs) {
nir->info.stage == MESA_SHADER_FRAGMENT) {
NIR_PASS(_, nir, nir_lower_io_to_temporaries,
nir_shader_get_entrypoint(nir),
true, false);

View File

@ -314,7 +314,6 @@ u_pipe_screen_get_param_defaults(struct pipe_screen *pscreen,
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
case PIPE_CAP_SHADER_CAN_READ_OUTPUTS:
case PIPE_CAP_NATIVE_FENCE_FD:
return 0;

View File

@ -214,7 +214,6 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_VIEWPORT_SUBPIXEL_BITS:
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
case PIPE_CAP_SHADER_CAN_READ_OUTPUTS:
case PIPE_CAP_NATIVE_FENCE_FD:
case PIPE_CAP_FBFETCH:
case PIPE_CAP_LEGACY_MATH_RULES:

View File

@ -139,7 +139,6 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_STRING_MARKER:
case PIPE_CAP_CULL_DISTANCE:
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
case PIPE_CAP_SHADER_CAN_READ_OUTPUTS:
case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
case PIPE_CAP_DOUBLES:

View File

@ -140,7 +140,6 @@ v3d_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_MULTI_DRAW_INDIRECT:
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
case PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET:
case PIPE_CAP_SHADER_CAN_READ_OUTPUTS:
case PIPE_CAP_SHADER_PACK_HALF_FLOAT:
case PIPE_CAP_TEXTURE_HALF_FLOAT_LINEAR:
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:

View File

@ -819,7 +819,6 @@ enum pipe_cap
PIPE_CAP_MIXED_COLOR_DEPTH_BITS,
PIPE_CAP_SHADER_ARRAY_COMPONENTS,
PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS,
PIPE_CAP_SHADER_CAN_READ_OUTPUTS,
PIPE_CAP_NATIVE_FENCE_FD,
PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS,
PIPE_CAP_FBFETCH,

View File

@ -954,9 +954,6 @@ struct gl_constants
bool HasFBFetch;
/** Whether the backend supports reading from outputs */
bool SupportsReadingOutputs;
bool CombinedClipCullDistanceArrays;
bool PointSizeFixed;

View File

@ -170,8 +170,6 @@ void st_init_limits(struct pipe_screen *screen,
c->HasFBFetch = screen->get_param(screen, PIPE_CAP_FBFETCH);
c->SupportsReadingOutputs = screen->get_param(screen, PIPE_CAP_SHADER_CAN_READ_OUTPUTS);
c->CombinedClipCullDistanceArrays = !screen->get_param(screen, PIPE_CAP_CULL_DISTANCE_NOCOMBINE);
c->PointSizeFixed = screen->get_param(screen, PIPE_CAP_POINT_SIZE_FIXED) != PIPE_POINT_SIZE_LOWER_ALWAYS;