Browse Source

Merge pull request #1059 from Subv/vertex_offset

GPU: Implemented register 0x22A PICA_REG_DRAW_VERTEX_OFFSET
nce_cpp
bunnei 10 years ago
parent
commit
70363eec82
  1. 3
      src/video_core/command_processor.cpp
  2. 7
      src/video_core/pica.h

3
src/video_core/command_processor.cpp

@ -235,7 +235,8 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
for (unsigned int index = 0; index < regs.num_vertices; ++index)
{
unsigned int vertex = is_indexed ? (index_u16 ? index_address_16[index] : index_address_8[index]) : index;
// Indexed rendering doesn't use the start offset
unsigned int vertex = is_indexed ? (index_u16 ? index_address_16[index] : index_address_8[index]) : (index + regs.vertex_offset);
// -1 is a common special value used for primitive restart. Since it's unknown if
// the PICA supports it, and it would mess up the caching, guard against it here.

7
src/video_core/pica.h

@ -769,7 +769,12 @@ struct Regs {
// Number of vertices to render
u32 num_vertices;
INSERT_PADDING_WORDS(0x5);
INSERT_PADDING_WORDS(0x1);
// The index of the first vertex to render
u32 vertex_offset;
INSERT_PADDING_WORDS(0x3);
// These two trigger rendering of triangles
u32 trigger_draw;

Loading…
Cancel
Save