[Mesa-dev] [PATCH 1/3] i965/nir: Switch on shader stage in nir_lower_outputs().
Jason Ekstrand
jason at jlekstrand.net
Thu Oct 15 23:07:06 PDT 2015
Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>
On Oct 15, 2015 15:17, "Kenneth Graunke" <kenneth at whitecape.org> wrote:
> VS, GS, and FS continue doing the same thing they did before. We can
> simplify the FS code a bit because it is always scalar.
>
> Compute shaders now assert that there are no outputs instead of doing
> a loop over 0 outputs.
>
> Cc: mesa-stable at lists.freedesktop.org
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/drivers/dri/i965/brw_nir.c | 26 +++++++++++++++++++++-----
> 1 file changed, 21 insertions(+), 5 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_nir.c
> b/src/mesa/drivers/dri/i965/brw_nir.c
> index af9d041..1b4dace 100644
> --- a/src/mesa/drivers/dri/i965/brw_nir.c
> +++ b/src/mesa/drivers/dri/i965/brw_nir.c
> @@ -112,11 +112,27 @@ brw_nir_lower_inputs(nir_shader *nir, bool is_scalar)
> static void
> brw_nir_lower_outputs(nir_shader *nir, bool is_scalar)
> {
> - if (is_scalar) {
> - nir_assign_var_locations(&nir->outputs, &nir->num_outputs,
> type_size_scalar);
> - } else {
> - nir_foreach_variable(var, &nir->outputs)
> - var->data.driver_location = var->data.location;
> + switch (nir->stage) {
> + case MESA_SHADER_VERTEX:
> + case MESA_SHADER_GEOMETRY:
> + if (is_scalar) {
> + nir_assign_var_locations(&nir->outputs, &nir->num_outputs,
> + type_size_scalar);
> + } else {
> + nir_foreach_variable(var, &nir->outputs)
> + var->data.driver_location = var->data.location;
> + }
> + break;
> + case MESA_SHADER_FRAGMENT:
> + nir_assign_var_locations(&nir->outputs, &nir->num_outputs,
> + type_size_scalar);
> + break;
> + case MESA_SHADER_COMPUTE:
> + /* Compute shaders have no outputs. */
> + assert(exec_list_is_empty(&nir->outputs));
> + break;
> + default:
> + unreachable("unsupported shader stage");
> }
> }
>
> --
> 2.6.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151015/c0e9699a/attachment.html>
More information about the mesa-dev
mailing list