implement more primitive types & warn about vertex stride

This commit is contained in:
Samuliak 2024-08-06 16:29:06 +02:00
parent 5fc45407db
commit 99ff282720
3 changed files with 38 additions and 15 deletions

View file

@ -60,6 +60,12 @@ MTL::RenderPipelineState* MetalPipelineCache::GetPipelineState(const LatteFetchS
uint32 bufferBaseRegisterIndex = mmSQ_VTX_ATTRIBUTE_BLOCK_START + bufferIndex * 7;
uint32 bufferStride = (LatteGPUState.contextNew.GetRawView()[bufferBaseRegisterIndex + 2] >> 11) & 0xFFFF;
uint32 strideRemainder = bufferStride % 4;
if (strideRemainder != 0)
{
debug_printf("vertex stride must be a multiple of 4, remainder: %u\n", strideRemainder);
}
auto layout = vertexDescriptor->layouts()->object(GET_MTL_VERTEX_BUFFER_INDEX(bufferIndex));
layout->setStride(bufferStride);
if (!fetchType.has_value() || fetchType == LatteConst::VertexFetchType2::VERTEX_DATA)