mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 15:40:11 +01:00
nvc0: expose 4 vertex streams, use stream ids in xfb
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
parent
2f2467cb23
commit
5e04526399
6 changed files with 6 additions and 3 deletions
|
|
@ -108,7 +108,7 @@ GL 4.0:
|
|||
- Packing/bitfield/conversion functions DONE
|
||||
- Enhanced textureGather DONE
|
||||
- Geometry shader instancing DONE
|
||||
- Geometry shader multiple streams DONE (i965)
|
||||
- Geometry shader multiple streams DONE (i965, nvc0)
|
||||
- Enhanced per-sample shading DONE
|
||||
- Interpolation functions started (Chris)
|
||||
- New overload resolution rules DONE
|
||||
|
|
|
|||
|
|
@ -493,6 +493,7 @@ nvc0_program_create_tfb_state(const struct nv50_ir_prog_info *info,
|
|||
info->out[pso->output[i].register_index].slot[s + c];
|
||||
|
||||
tfb->varying_count[b] = MAX2(tfb->varying_count[b], p);
|
||||
tfb->stream[b] = pso->output[i].stream;
|
||||
}
|
||||
for (b = 0; b < 4; ++b) // zero unused indices (looks nicer)
|
||||
for (c = tfb->varying_count[b]; c & 3; ++c)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
struct nvc0_transform_feedback_state {
|
||||
uint32_t stride[4];
|
||||
uint8_t stream[4];
|
||||
uint8_t varying_count[4];
|
||||
uint8_t varying_index[4][128];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@ nvc0_query_create(struct pipe_context *pipe, unsigned type, unsigned index)
|
|||
case PIPE_QUERY_PRIMITIVES_GENERATED:
|
||||
case PIPE_QUERY_PRIMITIVES_EMITTED:
|
||||
q->is64bit = TRUE;
|
||||
q->index = index;
|
||||
space = 32;
|
||||
break;
|
||||
case PIPE_QUERY_TIME_ELAPSED:
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS:
|
||||
return 1024;
|
||||
case PIPE_CAP_MAX_VERTEX_STREAMS:
|
||||
return 1;
|
||||
return 4;
|
||||
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
|
||||
return 256;
|
||||
case PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT:
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ nvc0_tfb_validate(struct nvc0_context *nvc0)
|
|||
unsigned n = (tfb->varying_count[b] + 3) / 4;
|
||||
|
||||
BEGIN_NVC0(push, NVC0_3D(TFB_STREAM(b)), 3);
|
||||
PUSH_DATA (push, 0);
|
||||
PUSH_DATA (push, tfb->stream[b]);
|
||||
PUSH_DATA (push, tfb->varying_count[b]);
|
||||
PUSH_DATA (push, tfb->stride[b]);
|
||||
BEGIN_NVC0(push, NVC0_3D(TFB_VARYING_LOCS(b, 0)), n);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue