diff --git a/projects/apis/metal/src/commands/commands/metal_commands.m b/projects/apis/metal/src/commands/commands/metal_commands.m index cb1e343..174f127 100644 --- a/projects/apis/metal/src/commands/commands/metal_commands.m +++ b/projects/apis/metal/src/commands/commands/metal_commands.m @@ -114,29 +114,11 @@ void metalDrawIndexed(gnCommandBufferHandle buffer, gnIndexType type, int indexC void metalBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set) { id encoder = (id)buffer->commandBuffer->encoder; - [encoder useResources:uniform->uniform->usedResources count:uniform->uniform->usedResourceCount usage:MTLResourceUsageRead stages:MTLRenderStageFragment]; - [encoder setFragmentBuffer:uniform->uniform->argumentBuffer offset:0 atIndex:2]; - // for (int i = 0; i < uniform->uniform->bindingCount; i++) { - // if (uniform->uniform->bindings[i].type == GN_UNIFORM_BUFFER_DESCRIPTOR) { - // gnBufferUniformInfo info = *(gnBufferUniformInfo*)uniform->uniform->bindings[i].data; - // [encoder setVertexBuffer:info.buffer->buffer->buffer - // offset:info.offset - // atIndex:buffer->commandBuffer->boundGraphcisPipeline->graphicsPipeline->vertexShaderMaps.sets[set].bindings[info.binding] - // ]; - // } else if (uniform->uniform->bindings[i].type == GN_SHADER_STORE_BUFFER_DESCRIPTOR) { - // gnStorageUniformInfo info = *(gnStorageUniformInfo*)uniform->uniform->bindings[i].data; - // [encoder setVertexBuffer:info.buffer->buffer->buffer - // offset:info.offset - // atIndex:buffer->commandBuffer->boundGraphcisPipeline->graphicsPipeline->vertexShaderMaps.sets[set].bindings[info.binding] - // ]; - // } else if (uniform->uniform->bindings[i].type == GN_IMAGE_DESCRIPTOR) { - // gnImageUniformInfo info = *(gnImageUniformInfo*)uniform->uniform->bindings[i].data; - // uint32_t index = buffer->commandBuffer->boundGraphcisPipeline->graphicsPipeline->fragmentShaderMaps.sets[set].bindings[info.binding]; - // [encoder setFragmentTexture:info.texture->texture->texture atIndex:index]; - // [encoder setFragmentSamplerState:info.texture->texture->sampler atIndex:index]; - // } - // } + [encoder useResources:uniform->uniform->usedResources count:uniform->uniform->usedResourceCount usage:MTLResourceUsageRead stages:MTLRenderStageVertex | MTLRenderStageFragment]; + + [encoder setVertexBuffer:uniform->uniform->argumentBuffer offset:0 atIndex:(set + 1)]; + [encoder setFragmentBuffer:uniform->uniform->argumentBuffer offset:0 atIndex:(set + 1)]; } void metalBindVertexBytes(gnCommandBufferHandle buffer, gnPushConstantLayout layout, void* data) {