Skip to content

Commit

Permalink
Update SDL_gpu_shadercross, for SDL_GetGPUShaderFormats
Browse files Browse the repository at this point in the history
  • Loading branch information
flibitijibibo committed Sep 13, 2024
1 parent 7b06174 commit 43ae2c9
Showing 1 changed file with 18 additions and 21 deletions.
39 changes: 18 additions & 21 deletions spirv/SDL_gpu_shadercross.h
Original file line number Diff line number Diff line change
Expand Up @@ -604,17 +604,19 @@ extern void *SDL_ShaderCross_CompileFromHLSL(SDL_GPUDevice *device,
const char *hlslSource,
const char *shaderProfile)
{
switch (SDL_GetGPUDriver(device)) {
case SDL_GPU_DRIVER_D3D11:
SDL_GPUShaderFormat format = SDL_GetGPUShaderFormats(device);
if (format & SDL_GPU_SHADERFORMAT_DXBC) {
return SDL_ShaderCross_INTERNAL_CompileFXC(device, createInfo, hlslSource, shaderProfile);
case SDL_GPU_DRIVER_D3D12:
}
if (format & SDL_GPU_SHADERFORMAT_DXIL) {
return SDL_ShaderCross_INTERNAL_CompileDXC(device, createInfo, hlslSource, shaderProfile, DXC_CP_ACP, SDL_FALSE);
case SDL_GPU_DRIVER_VULKAN:
}
if (format & SDL_GPU_SHADERFORMAT_SPIRV) {
return SDL_ShaderCross_INTERNAL_CompileDXC(device, createInfo, hlslSource, shaderProfile, DXC_CP_ACP, SDL_TRUE);
default:
SDL_SetError("SDL_ShaderCross_CompileFromHLSL: Unexpected SDL_GPUBackend");
return NULL;
}

SDL_SetError("SDL_ShaderCross_CompileFromHLSL: Unexpected SDL_GPUShaderFormat");
return NULL;
}

#endif /* SDL_GPU_SHADERCROSS_HLSL */
Expand Down Expand Up @@ -702,26 +704,26 @@ void *SDL_ShaderCross_CompileFromSPIRV(
const char *cleansed_entrypoint;
void *compiledResult;

switch (SDL_GetGPUDriver(device)) {
case SDL_GPU_DRIVER_VULKAN:
SDL_GPUShaderFormat shader_formats = SDL_GetGPUShaderFormats(device);

if (shader_formats & SDL_GPU_SHADERFORMAT_SPIRV) {
if (isCompute) {
return SDL_CreateGPUComputePipeline(device, (SDL_GPUComputePipelineCreateInfo *)originalCreateInfo);
} else {
return SDL_CreateGPUShader(device, (SDL_GPUShaderCreateInfo *)originalCreateInfo);
}
case SDL_GPU_DRIVER_D3D11:
} else if (shader_formats & SDL_GPU_SHADERFORMAT_DXBC) {
backend = SPVC_BACKEND_HLSL;
format = SDL_GPU_SHADERFORMAT_DXBC;
break;
case SDL_GPU_DRIVER_D3D12:
shadermodel = 50;
} else if (shader_formats & SDL_GPU_SHADERFORMAT_DXIL) {
backend = SPVC_BACKEND_HLSL;
format = SDL_GPU_SHADERFORMAT_DXIL;
break;
case SDL_GPU_DRIVER_METAL:
shadermodel = 60;
} else if (shader_formats & SDL_GPU_SHADERFORMAT_MSL) {
backend = SPVC_BACKEND_MSL;
format = SDL_GPU_SHADERFORMAT_MSL;
break;
default:
} else {
SDL_SetError("SDL_ShaderCross_CompileFromSPIRV: Unexpected SDL_GPUBackend");
return NULL;
}
Expand Down Expand Up @@ -764,11 +766,6 @@ void *SDL_ShaderCross_CompileFromSPIRV(
}

if (backend == SPVC_BACKEND_HLSL) {
if (SDL_GetGPUDriver(device) == SDL_GPU_DRIVER_D3D11) {
shadermodel = 50;
} else {
shadermodel = 60;
}
SDL_spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_HLSL_SHADER_MODEL, shadermodel);
SDL_spvc_compiler_options_set_uint(options, SPVC_COMPILER_OPTION_HLSL_NONWRITABLE_UAV_TEXTURE_AS_SRV, 1);
}
Expand Down

0 comments on commit 43ae2c9

Please sign in to comment.