Mesa (master): draw/vs: pass the view index to the vertex shader
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Mar 12 05:34:53 UTC 2021
Module: Mesa
Branch: master
Commit: a2bee6df5fd23b80dfadb21953584601935d1167
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a2bee6df5fd23b80dfadb21953584601935d1167
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Mar 4 13:57:40 2021 +1000
draw/vs: pass the view index to the vertex shader
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399>
---
src/gallium/auxiliary/draw/draw_llvm.c | 4 +++-
src/gallium/auxiliary/draw/draw_llvm.h | 2 +-
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
index 19b0d4c5f6b..ca7d04b197f 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_llvm.c
@@ -1891,7 +1891,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant)
struct gallivm_state *gallivm = variant->gallivm;
LLVMContextRef context = gallivm->context;
LLVMTypeRef int32_type = LLVMInt32TypeInContext(context);
- LLVMTypeRef arg_types[12];
+ LLVMTypeRef arg_types[13];
unsigned num_arg_types = ARRAY_SIZE(arg_types);
LLVMTypeRef func_type;
LLVMValueRef context_ptr;
@@ -1958,6 +1958,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant)
arg_types[i++] = int32_type; /* start_instance */
arg_types[i++] = LLVMPointerType(int32_type, 0); /* fetch_elts */
arg_types[i++] = int32_type; /* draw_id */
+ arg_types[i++] = int32_type; /* view_id */
func_type = LLVMFunctionType(LLVMInt8TypeInContext(context),
arg_types, num_arg_types, 0);
@@ -1995,6 +1996,7 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant)
system_values.base_instance = LLVMGetParam(variant_func, 9);
fetch_elts = LLVMGetParam(variant_func, 10);
system_values.draw_id = LLVMGetParam(variant_func, 11);
+ system_values.view_index = LLVMGetParam(variant_func, 12);
lp_build_name(context_ptr, "context");
lp_build_name(io_ptr, "io");
diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h
index c75179cb957..f2d3ef83b06 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.h
+++ b/src/gallium/auxiliary/draw/draw_llvm.h
@@ -437,7 +437,7 @@ typedef boolean
unsigned vertex_id_offset,
unsigned start_instance,
const unsigned *fetch_elts,
- unsigned draw_id);
+ unsigned draw_id, unsigned view_id);
typedef int
diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
index c4b79ea0e24..cca0bcc627c 100644
--- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c
@@ -631,7 +631,8 @@ llvm_pipeline_generic(struct draw_pt_middle_end *middle,
draw->instance_id,
vid_base,
draw->start_instance,
- elts, draw->pt.user.drawid);
+ elts, draw->pt.user.drawid,
+ draw->pt.user.viewid);
/* Finished with fetch and vs:
*/
More information about the mesa-commit
mailing list