Merge pull request #17394 from hrydgard/vbuffer-ibuffer-sizes

Bump the index/vertex cpu-side buffer sizes a little.
This commit is contained in:
Henrik Rydgård 2023-05-03 09:16:05 +02:00 committed by GitHub
commit 1d8e549b6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 3 deletions

View file

@ -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 {

View file

@ -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);

View file

@ -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 {