mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-23 18:24:13 +08:00
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:
parent
767ea18517
commit
57080749f7
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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,
|
||||
|
@ -954,9 +954,6 @@ struct gl_constants
|
||||
|
||||
bool HasFBFetch;
|
||||
|
||||
/** Whether the backend supports reading from outputs */
|
||||
bool SupportsReadingOutputs;
|
||||
|
||||
bool CombinedClipCullDistanceArrays;
|
||||
|
||||
bool PointSizeFixed;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user