Mesa (master): mesa/st: add vertex stream support

Ilia Mirkin imirkin at kemper.freedesktop.org
Tue Jul 1 15:39:13 UTC 2014


Module: Mesa
Branch: master
Commit: 1d16dbf4160b41f1177827198a4bb32969e15809
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1d16dbf4160b41f1177827198a4bb32969e15809

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sun Jun 15 18:49:50 2014 -0400

mesa/st: add vertex stream support

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>

---

 src/mesa/state_tracker/st_cb_queryobj.c    |    2 +-
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_queryobj.c b/src/mesa/state_tracker/st_cb_queryobj.c
index 1aaa322..489f537 100644
--- a/src/mesa/state_tracker/st_cb_queryobj.c
+++ b/src/mesa/state_tracker/st_cb_queryobj.c
@@ -138,7 +138,7 @@ st_BeginQuery(struct gl_context *ctx, struct gl_query_object *q)
       pipe->end_query(pipe, stq->pq_begin);
    } else {
       if (!stq->pq) {
-         stq->pq = pipe->create_query(pipe, type, 0);
+         stq->pq = pipe->create_query(pipe, type, q->Stream);
          stq->type = type;
       }
       if (stq->pq) {
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index a552bb4..13de2be 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -3139,14 +3139,18 @@ void
 glsl_to_tgsi_visitor::visit(ir_emit_vertex *ir)
 {
    assert(this->prog->Target == GL_GEOMETRY_PROGRAM_NV);
-   emit(ir, TGSI_OPCODE_EMIT, undef_dst, st_src_reg_for_int(0));
+
+   ir->stream->accept(this);
+   emit(ir, TGSI_OPCODE_EMIT, undef_dst, this->result);
 }
 
 void
 glsl_to_tgsi_visitor::visit(ir_end_primitive *ir)
 {
    assert(this->prog->Target == GL_GEOMETRY_PROGRAM_NV);
-   emit(ir, TGSI_OPCODE_ENDPRIM, undef_dst, st_src_reg_for_int(0));
+
+   ir->stream->accept(this);
+   emit(ir, TGSI_OPCODE_ENDPRIM, undef_dst, this->result);
 }
 
 glsl_to_tgsi_visitor::glsl_to_tgsi_visitor()
@@ -5524,7 +5528,7 @@ st_translate_stream_output_info(glsl_to_tgsi_visitor *glsl_to_tgsi,
       so->output[i].num_components = info->Outputs[i].NumComponents;
       so->output[i].output_buffer = info->Outputs[i].OutputBuffer;
       so->output[i].dst_offset = info->Outputs[i].DstOffset;
-      so->output[i].stream = 0; /* info->Outputs[i].StreamId */
+      so->output[i].stream = info->Outputs[i].StreamId;
    }
 
    for (i = 0; i < PIPE_MAX_SO_BUFFERS; i++) {




More information about the mesa-commit mailing list