Skip to content

Commit

Permalink
Merge pull request #17394 from hrydgard/vbuffer-ibuffer-sizes
Browse files Browse the repository at this point in the history
Bump the index/vertex cpu-side buffer sizes a little.
  • Loading branch information
hrydgard authored May 3, 2023
2 parents aff455a + cee9d2b commit 1d8e549
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
4 changes: 2 additions & 2 deletions GPU/Common/DrawEngineCommon.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ class VertexDecoder;

enum {
VERTEX_BUFFER_MAX = 65536,
DECODED_VERTEX_BUFFER_SIZE = VERTEX_BUFFER_MAX * 64,
DECODED_INDEX_BUFFER_SIZE = VERTEX_BUFFER_MAX * 16,
DECODED_VERTEX_BUFFER_SIZE = VERTEX_BUFFER_MAX * 2 * 36, // 36 == sizeof(SimpleVertex)
DECODED_INDEX_BUFFER_SIZE = VERTEX_BUFFER_MAX * 6 * 6 * 2, // * 6 for spline tessellation, then * 6 again for converting into points/lines, and * 2 for 2 bytes per index
};

enum {
Expand Down
4 changes: 3 additions & 1 deletion GPU/Common/SplineCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,9 @@ void DrawEngineCommon::SubmitCurve(const void *control_points, const void *indic
output.indices = decIndex;
output.count = 0;

surface.Init(DECODED_VERTEX_BUFFER_SIZE / 2 / vertexSize);
int maxVerts = DECODED_VERTEX_BUFFER_SIZE / 2 / vertexSize;

surface.Init(maxVerts);

if (CanUseHardwareTessellation(surface.primType)) {
HardwareTessellation(output, surface, origVertType, points, tessDataTransfer);
Expand Down
1 change: 1 addition & 0 deletions GPU/Common/SplineCommon.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#define HALF_CEIL(x) (x + 1) / 2 // Integer ceil = (int)ceil((float)x / 2.0f)

// PSP compatible format so we can use the end of the pipeline in beziers etc
// 8 + 4 + 12 + 12 = 36 bytes
struct SimpleVertex {
float uv[2];
union {
Expand Down

0 comments on commit 1d8e549

Please sign in to comment.