[Mesa-dev] [PATCH 5/8] mesa/st: add vertex stream support

Brian Paul brianp at vmware.com
Fri Jun 27 06:31:47 PDT 2014


On 06/26/2014 10:40 PM, Ilia Mirkin wrote:
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>   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++) {
>

Reviewed-by: Brian Paul <brianp at vmware.com>



More information about the mesa-dev mailing list