Minor fixes with indexed draw calls

This commit is contained in:
Phillip Stephens 2025-04-14 23:07:50 -07:00
parent fee77b3d25
commit 788c65592f
2 changed files with 21 additions and 5 deletions

View File

@ -180,6 +180,8 @@ static inline wgpu::PrimitiveState to_primitive_state(GXPrimitive gx_prim, GXCul
}
return {
.topology = primitive,
.stripIndexFormat = gx_prim == GX_TRIANGLESTRIP || gx_prim == GX_LINESTRIP ? wgpu::IndexFormat::Uint16
: wgpu::IndexFormat::Undefined,
.frontFace = wgpu::FrontFace::CW,
.cullMode = cullMode,
};
@ -251,11 +253,11 @@ void populate_pipeline_config(PipelineConfig& config, GXPrimitive primitive, GXV
continue;
}
// Map attribute to its own storage
config.shaderConfig.attrMapping[i] = StorageConfig {
.attr = static_cast<GXAttr>(i),
.cnt = vtxFmt.attrs[i].cnt,
.compType = vtxFmt.attrs[i].type,
.frac = vtxFmt.attrs[i].frac,
config.shaderConfig.attrMapping[i] = StorageConfig{
.attr = static_cast<GXAttr>(i),
.cnt = vtxFmt.attrs[i].cnt,
.compType = vtxFmt.attrs[i].type,
.frac = vtxFmt.attrs[i].frac,
};
}
config.shaderConfig.tevSwapTable = g_gxState.tevSwapTable;

View File

@ -391,6 +391,20 @@ bool initialize(AuroraBackend auroraBackend) {
: supportedLimits.maxTextureDimension2D,
.maxTextureDimension3D = supportedLimits.maxTextureDimension3D == 0 ? WGPU_LIMIT_U32_UNDEFINED
: supportedLimits.maxTextureDimension3D,
.maxTextureArrayLayers = supportedLimits.maxTextureArrayLayers == 0 ? WGPU_LIMIT_U32_UNDEFINED
: supportedLimits.maxTextureArrayLayers,
.maxBindGroupsPlusVertexBuffers = supportedLimits.maxBindGroupsPlusVertexBuffers == 0
? WGPU_LIMIT_U32_UNDEFINED
: supportedLimits.maxBindGroupsPlusVertexBuffers,
.maxBindingsPerBindGroup = supportedLimits.maxBindGroupsPlusVertexBuffers == 0
? WGPU_LIMIT_U32_UNDEFINED
: supportedLimits.maxBindGroupsPlusVertexBuffers,
.maxDynamicUniformBuffersPerPipelineLayout = supportedLimits.maxDynamicUniformBuffersPerPipelineLayout == 0
? WGPU_LIMIT_U32_UNDEFINED
: supportedLimits.maxDynamicUniformBuffersPerPipelineLayout,
.maxDynamicStorageBuffersPerPipelineLayout = supportedLimits.maxDynamicStorageBuffersPerPipelineLayout == 0
? WGPU_LIMIT_U32_UNDEFINED
: supportedLimits.maxDynamicStorageBuffersPerPipelineLayout,
.minUniformBufferOffsetAlignment = supportedLimits.minUniformBufferOffsetAlignment == 0
? WGPU_LIMIT_U32_UNDEFINED
: supportedLimits.minUniformBufferOffsetAlignment,