116int main(
int argc,
const char *argv[])
118 std::string gpu_backend_arg;
119 std::string shader_name_starts_with_filter_arg;
120 std::string result_file_arg;
124 if (arg < argc - 2) {
126 if (argument ==
"--gpu-backend") {
127 gpu_backend_arg = std::string(argv[arg + 1]);
130 else if (argument ==
"--gpu-shader-filter") {
131 shader_name_starts_with_filter_arg = std::string(argv[arg + 1]);
138 else if (arg == argc - 1) {
139 result_file_arg = argv[arg];
147 if (result_file_arg.empty() || (!
ELEM(gpu_backend_arg,
"",
"vulkan",
"metal",
"opengl"))) {
148 std::cout <<
"Usage: " << argv[0];
149 std::cout <<
" [--gpu-backend ";
150#ifdef WITH_METAL_BACKEND
151 std::cout <<
"metal";
153#ifdef WITH_OPENGL_BACKEND
154 std::cout <<
"opengl";
156#ifdef WITH_VULKAN_BACKEND
157 std::cout <<
",vulkan";
160 std::cout <<
" [--gpu-shader-filter <shader-name>]";
161 std::cout <<
" <data_file_out>\n";
170 struct NamedBackend {
176#ifdef WITH_OPENGL_BACKEND
177 if (
ELEM(gpu_backend_arg,
"",
"opengl")) {
181#ifdef WITH_METAL_BACKEND
182 if (
ELEM(gpu_backend_arg,
"",
"metal")) {
186#ifdef WITH_VULKAN_BACKEND
187 if (
ELEM(gpu_backend_arg,
"",
"vulkan")) {
192 for (NamedBackend &backend : backends_to_validate) {
195 printf(
"%s isn't supported on this platform. Shader compilation is skipped\n",
196 backend.name.c_str());
201 printf(
"Shader compilation failed for %s backend\n", backend.name.c_str());
205 printf(
"%s backend shader compilation succeeded.\n", backend.name.c_str());
210 printf(
"Shader compilation skipped for %s backend. Context could not be created.\n",
211 backend.name.c_str());
GPUContext * GPU_context_create(void *ghost_window, void *ghost_context)
void GPU_backend_type_selection_set(const eGPUBackendType backend)
bool GPU_backend_supported()
eGPUBackendType GPU_backend_type_selection_get()
void GPU_context_discard(GPUContext *)
void GPU_backend_ghost_system_set(void *ghost_system_handle)