Platform checks

This commit is contained in:
Zachary Levy
2026-04-20 10:08:06 -07:00
parent 90fba74243
commit 1e2c2936a8
4 changed files with 55 additions and 29 deletions

View File

@@ -144,32 +144,34 @@ create_pipeline_2d_base :: proc(
if pipeline.sdl_pipeline != nil do sdl.ReleaseGPUGraphicsPipeline(device, pipeline.sdl_pipeline)
}
when ODIN_OS == .Darwin {
base_2d_vert_raw := #load("shaders/generated/base_2d.vert.metal")
base_2d_frag_raw := #load("shaders/generated/base_2d.frag.metal")
} else {
base_2d_vert_raw := #load("shaders/generated/base_2d.vert.spv")
base_2d_frag_raw := #load("shaders/generated/base_2d.frag.spv")
active_shader_formats := sdl.GetGPUShaderFormats(device)
if PLATFORM_SHADER_FORMAT_FLAG not_in active_shader_formats {
log.errorf(
"draw: no embedded shader matches active GPU formats; this build supports %v but device reports %v",
PLATFORM_SHADER_FORMAT,
active_shader_formats,
)
return pipeline, false
}
log.debug("Loaded", len(base_2d_vert_raw), "vert bytes")
log.debug("Loaded", len(base_2d_frag_raw), "frag bytes")
log.debug("Loaded", len(BASE_VERT_2D_RAW), "vert bytes")
log.debug("Loaded", len(BASE_FRAG_2D_RAW), "frag bytes")
vert_info := sdl.GPUShaderCreateInfo {
code_size = len(base_2d_vert_raw),
code = raw_data(base_2d_vert_raw),
entrypoint = ENTRY_POINT,
format = SHADER_TYPE,
code_size = len(BASE_VERT_2D_RAW),
code = raw_data(BASE_VERT_2D_RAW),
entrypoint = SHADER_ENTRY,
format = {PLATFORM_SHADER_FORMAT_FLAG},
stage = .VERTEX,
num_uniform_buffers = 1,
num_storage_buffers = 1,
}
frag_info := sdl.GPUShaderCreateInfo {
code_size = len(base_2d_frag_raw),
code = raw_data(base_2d_frag_raw),
entrypoint = ENTRY_POINT,
format = SHADER_TYPE,
code_size = len(BASE_FRAG_2D_RAW),
code = raw_data(BASE_FRAG_2D_RAW),
entrypoint = SHADER_ENTRY,
format = {PLATFORM_SHADER_FORMAT_FLAG},
stage = .FRAGMENT,
num_samplers = 1,
}