actually get uniforms to work (with my test case)

This commit is contained in:
Gregory Wells
2025-07-21 09:33:05 -04:00
parent 3497e32e47
commit 6b71e44d21
5 changed files with 134 additions and 30 deletions

View File

@@ -19,6 +19,7 @@ gnReturnCode createMetalShaderModule(gnShaderModule module, gnDevice device, gnS
mtlShader shader = mtlCompileShader(shaderModuleInfo.code, shaderModuleInfo.size / 4, &options);
const char* res = shader.code;
if (res == NULL) return GN_FAILED_TO_CONVERT_SHADER_CODE;
printf("res: %s\n", res);
NSError* error = nil;
MTLCompileOptions* mtloptions = nil;
@@ -29,6 +30,8 @@ gnReturnCode createMetalShaderModule(gnShaderModule module, gnDevice device, gnS
gnDebuggerSetErrorMessage(device->instance->debugger, (gnMessageData){
.message = gnCombineStrings(gnCreateString("Failed to compile metal library "), errorString)
});
[shaderLib release];
free((void*)res);
return GN_FAILED_TO_CREATE_SHADER_MODULE;
}
@@ -48,7 +51,7 @@ gnReturnCode createMetalShaderModule(gnShaderModule module, gnDevice device, gnS
module->shaderModule->function = [shaderLib newFunctionWithName:functionName];
[shaderLib release];
free((void*)res);
if (options.stage == vertex) free((void*)res);
module->shaderModule->shaderMap = shader.map;
return GN_SUCCESS;
}