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:
@@ -413,8 +413,6 @@ The integer capabilities:
|
|||||||
* ``PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS``: Whether interleaved stream
|
* ``PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS``: Whether interleaved stream
|
||||||
output mode is able to interleave across buffers. This is required for
|
output mode is able to interleave across buffers. This is required for
|
||||||
:ext:`GL_ARB_transform_feedback3`.
|
: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
|
* ``PIPE_CAP_FBFETCH``: The number of render targets whose value in the
|
||||||
current framebuffer can be read in the shader. 0 means framebuffer fetch
|
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,
|
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),
|
nir_shader_get_entrypoint(nir),
|
||||||
true, true);
|
true, true);
|
||||||
} else if (nir->info.stage == MESA_SHADER_TESS_EVAL ||
|
} else if (nir->info.stage == MESA_SHADER_TESS_EVAL ||
|
||||||
nir->info.stage == MESA_SHADER_FRAGMENT ||
|
nir->info.stage == MESA_SHADER_FRAGMENT) {
|
||||||
!consts->SupportsReadingOutputs) {
|
|
||||||
NIR_PASS(_, nir, nir_lower_io_to_temporaries,
|
NIR_PASS(_, nir, nir_lower_io_to_temporaries,
|
||||||
nir_shader_get_entrypoint(nir),
|
nir_shader_get_entrypoint(nir),
|
||||||
true, false);
|
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_MIXED_COLOR_DEPTH_BITS:
|
||||||
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
|
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
|
||||||
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
|
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
|
||||||
case PIPE_CAP_SHADER_CAN_READ_OUTPUTS:
|
|
||||||
case PIPE_CAP_NATIVE_FENCE_FD:
|
case PIPE_CAP_NATIVE_FENCE_FD:
|
||||||
return 0;
|
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_VIEWPORT_SUBPIXEL_BITS:
|
||||||
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
|
case PIPE_CAP_MIXED_COLOR_DEPTH_BITS:
|
||||||
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
|
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
|
||||||
case PIPE_CAP_SHADER_CAN_READ_OUTPUTS:
|
|
||||||
case PIPE_CAP_NATIVE_FENCE_FD:
|
case PIPE_CAP_NATIVE_FENCE_FD:
|
||||||
case PIPE_CAP_FBFETCH:
|
case PIPE_CAP_FBFETCH:
|
||||||
case PIPE_CAP_LEGACY_MATH_RULES:
|
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_STRING_MARKER:
|
||||||
case PIPE_CAP_CULL_DISTANCE:
|
case PIPE_CAP_CULL_DISTANCE:
|
||||||
case PIPE_CAP_SHADER_ARRAY_COMPONENTS:
|
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_PAUSE_RESUME:
|
||||||
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
|
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
|
||||||
case PIPE_CAP_DOUBLES:
|
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_MULTI_DRAW_INDIRECT:
|
||||||
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
|
case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
|
||||||
case PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET:
|
case PIPE_CAP_SIGNED_VERTEX_BUFFER_OFFSET:
|
||||||
case PIPE_CAP_SHADER_CAN_READ_OUTPUTS:
|
|
||||||
case PIPE_CAP_SHADER_PACK_HALF_FLOAT:
|
case PIPE_CAP_SHADER_PACK_HALF_FLOAT:
|
||||||
case PIPE_CAP_TEXTURE_HALF_FLOAT_LINEAR:
|
case PIPE_CAP_TEXTURE_HALF_FLOAT_LINEAR:
|
||||||
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
|
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
|
||||||
|
@@ -819,7 +819,6 @@ enum pipe_cap
|
|||||||
PIPE_CAP_MIXED_COLOR_DEPTH_BITS,
|
PIPE_CAP_MIXED_COLOR_DEPTH_BITS,
|
||||||
PIPE_CAP_SHADER_ARRAY_COMPONENTS,
|
PIPE_CAP_SHADER_ARRAY_COMPONENTS,
|
||||||
PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS,
|
PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS,
|
||||||
PIPE_CAP_SHADER_CAN_READ_OUTPUTS,
|
|
||||||
PIPE_CAP_NATIVE_FENCE_FD,
|
PIPE_CAP_NATIVE_FENCE_FD,
|
||||||
PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS,
|
PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS,
|
||||||
PIPE_CAP_FBFETCH,
|
PIPE_CAP_FBFETCH,
|
||||||
|
@@ -954,9 +954,6 @@ struct gl_constants
|
|||||||
|
|
||||||
bool HasFBFetch;
|
bool HasFBFetch;
|
||||||
|
|
||||||
/** Whether the backend supports reading from outputs */
|
|
||||||
bool SupportsReadingOutputs;
|
|
||||||
|
|
||||||
bool CombinedClipCullDistanceArrays;
|
bool CombinedClipCullDistanceArrays;
|
||||||
|
|
||||||
bool PointSizeFixed;
|
bool PointSizeFixed;
|
||||||
|
@@ -170,8 +170,6 @@ void st_init_limits(struct pipe_screen *screen,
|
|||||||
|
|
||||||
c->HasFBFetch = screen->get_param(screen, PIPE_CAP_FBFETCH);
|
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->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;
|
c->PointSizeFixed = screen->get_param(screen, PIPE_CAP_POINT_SIZE_FIXED) != PIPE_POINT_SIZE_LOWER_ALWAYS;
|
||||||
|
Reference in New Issue
Block a user