Module: Mesa Branch: master Commit: 5f7c7c9a7f7e1ce44261ca292de2bb3dc767d0ec URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5f7c7c9a7f7e1ce44261ca292de2bb3dc767d0ec
Author: Marek Olšák <marek.ol...@amd.com> Date: Tue Feb 9 11:08:11 2021 -0500 nir: add src and dest types to all IO loads and stores for mediump Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzw...@collabora.com> Reviewed-by: Eric Anholt <e...@anholt.net> Reviewed-by: Matt Turner <matts...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9050> --- src/compiler/nir/nir_intrinsics.py | 10 +++++----- src/compiler/nir/nir_lower_io.c | 7 ++++++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 527285d10ce..4e393bfc7ac 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -868,18 +868,18 @@ load("input", [1], [BASE, COMPONENT, DEST_TYPE, IO_SEMANTICS], [CAN_ELIMINATE, C # src[] = { vertex_id, offset }. load("input_vertex", [1, 1], [BASE, COMPONENT, DEST_TYPE, IO_SEMANTICS], [CAN_ELIMINATE, CAN_REORDER]) # src[] = { vertex, offset }. -load("per_vertex_input", [1, 1], [BASE, COMPONENT, IO_SEMANTICS], [CAN_ELIMINATE, CAN_REORDER]) +load("per_vertex_input", [1, 1], [BASE, COMPONENT, DEST_TYPE, IO_SEMANTICS], [CAN_ELIMINATE, CAN_REORDER]) # src[] = { barycoord, offset }. -load("interpolated_input", [2, 1], [BASE, COMPONENT, IO_SEMANTICS], [CAN_ELIMINATE, CAN_REORDER]) +load("interpolated_input", [2, 1], [BASE, COMPONENT, DEST_TYPE, IO_SEMANTICS], [CAN_ELIMINATE, CAN_REORDER]) # src[] = { buffer_index, offset }. load("ssbo", [-1, 1], [ACCESS, ALIGN_MUL, ALIGN_OFFSET], [CAN_ELIMINATE]) # src[] = { buffer_index } load("ssbo_address", [1], [], [CAN_ELIMINATE, CAN_REORDER]) # src[] = { offset }. -load("output", [1], [BASE, COMPONENT, IO_SEMANTICS], flags=[CAN_ELIMINATE]) +load("output", [1], [BASE, COMPONENT, DEST_TYPE, IO_SEMANTICS], flags=[CAN_ELIMINATE]) # src[] = { vertex, offset }. -load("per_vertex_output", [1, 1], [BASE, COMPONENT, IO_SEMANTICS], [CAN_ELIMINATE]) +load("per_vertex_output", [1, 1], [BASE, COMPONENT, DEST_TYPE, IO_SEMANTICS], [CAN_ELIMINATE]) # src[] = { offset }. load("shared", [1], [BASE, ALIGN_MUL, ALIGN_OFFSET], [CAN_ELIMINATE]) # src[] = { offset }. @@ -914,7 +914,7 @@ def store(name, srcs, indices=[], flags=[]): # src[] = { value, offset }. store("output", [1], [BASE, WRITE_MASK, COMPONENT, SRC_TYPE, IO_SEMANTICS]) # src[] = { value, vertex, offset }. -store("per_vertex_output", [1, 1], [BASE, WRITE_MASK, COMPONENT, IO_SEMANTICS]) +store("per_vertex_output", [1, 1], [BASE, WRITE_MASK, COMPONENT, SRC_TYPE, IO_SEMANTICS]) # src[] = { value, block_index, offset } store("ssbo", [-1, 1], [WRITE_MASK, ACCESS, ALIGN_MUL, ALIGN_OFFSET]) # src[] = { value, offset }. diff --git a/src/compiler/nir/nir_lower_io.c b/src/compiler/nir/nir_lower_io.c index bbf8d61fb79..fe4ad0b5987 100644 --- a/src/compiler/nir/nir_lower_io.c +++ b/src/compiler/nir/nir_lower_io.c @@ -301,6 +301,10 @@ emit_load(struct lower_io_state *state, if (load->intrinsic == nir_intrinsic_load_input || load->intrinsic == nir_intrinsic_load_input_vertex || + load->intrinsic == nir_intrinsic_load_interpolated_input || + load->intrinsic == nir_intrinsic_load_per_vertex_input || + load->intrinsic == nir_intrinsic_load_output || + load->intrinsic == nir_intrinsic_load_per_vertex_output || load->intrinsic == nir_intrinsic_load_uniform) nir_intrinsic_set_dest_type(load, dest_type); @@ -407,7 +411,8 @@ emit_store(struct lower_io_state *state, nir_ssa_def *data, if (mode == nir_var_shader_out) nir_intrinsic_set_component(store, component); - if (store->intrinsic == nir_intrinsic_store_output) + if (store->intrinsic == nir_intrinsic_store_output || + store->intrinsic == nir_intrinsic_store_per_vertex_output) nir_intrinsic_set_src_type(store, src_type); nir_intrinsic_set_write_mask(store, write_mask); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit