diff --git a/Core/NativeClient/Renderer.lua b/Core/NativeClient/Renderer.lua index 9c4017ff..303b3c27 100644 --- a/Core/NativeClient/Renderer.lua +++ b/Core/NativeClient/Renderer.lua @@ -149,14 +149,14 @@ end function Renderer:DrawMesh(renderPass, mesh) local vertexBufferSize = #mesh.vertexPositions * ffi.sizeof("float") local colorBufferSize = #mesh.vertexColors * ffi.sizeof("float") - local indexBufferSize = #mesh.triangleConnections * ffi.sizeof("uint16_t") + local indexBufferSize = #mesh.triangleConnections * ffi.sizeof("uint32_t") local diffuseTexCoordsBufferSize = mesh.diffuseTextureCoords and (#mesh.diffuseTextureCoords * ffi.sizeof("float")) or GPU.MAX_VERTEX_COUNT RenderPassEncoder:SetVertexBuffer(renderPass, 0, mesh.vertexBuffer, 0, vertexBufferSize) RenderPassEncoder:SetVertexBuffer(renderPass, 1, mesh.colorBuffer, 0, colorBufferSize) RenderPassEncoder:SetVertexBuffer(renderPass, 2, mesh.diffuseTexCoordsBuffer, 0, diffuseTexCoordsBufferSize) - RenderPassEncoder:SetIndexBuffer(renderPass, mesh.indexBuffer, ffi.C.WGPUIndexFormat_Uint16, 0, indexBufferSize) + RenderPassEncoder:SetIndexBuffer(renderPass, mesh.indexBuffer, ffi.C.WGPUIndexFormat_Uint32, 0, indexBufferSize) RenderPassEncoder:SetBindGroup(renderPass, 0, self.bindGroup, 0, nil) diff --git a/Core/NativeClient/WebGPU/Buffer.lua b/Core/NativeClient/WebGPU/Buffer.lua index 715c5454..317f71a7 100644 --- a/Core/NativeClient/WebGPU/Buffer.lua +++ b/Core/NativeClient/WebGPU/Buffer.lua @@ -40,7 +40,7 @@ function Buffer:CreateVertexBuffer(wgpuDevice, entries) end function Buffer:CreateIndexBuffer(wgpuDevice, indices) - local rawBufferSizeInBytes = #indices * ffi.sizeof("uint16_t") -- Assumes there won't be too many trianglces per mesh + local rawBufferSizeInBytes = #indices * ffi.sizeof("uint32_t") -- Assumes there won't be too many trianglces per mesh local alignedBufferSizeInBytes = Buffer.GetAlignedSize(rawBufferSizeInBytes) local bufferDescriptor = ffi.new("WGPUBufferDescriptor") @@ -53,7 +53,7 @@ function Buffer:CreateIndexBuffer(wgpuDevice, indices) webgpu.bindings.wgpu_device_get_queue(wgpuDevice), buffer, 0, - ffi.new("uint16_t[?]", alignedBufferSizeInBytes, indices), + ffi.new("uint32_t[?]", alignedBufferSizeInBytes, indices), alignedBufferSizeInBytes ) diff --git a/Core/NativeClient/WebGPU/GPU.lua b/Core/NativeClient/WebGPU/GPU.lua index 2e3581f0..88f11a22 100644 --- a/Core/NativeClient/WebGPU/GPU.lua +++ b/Core/NativeClient/WebGPU/GPU.lua @@ -3,7 +3,7 @@ local glfw = require("glfw") local webgpu = require("webgpu") local GPU = { - MAX_VERTEX_COUNT = 65536, -- Should be configurable (later) + MAX_VERTEX_COUNT = 200000, -- Should be configurable (later) } function GPU:CreateInstance()