From 2f4029a753f72833c30c4e6bad28c06b20540384 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Mon, 25 Mar 2019 11:48:10 -0400 Subject: Adapter selection for Renderer (#923) * * Make adapter used selectable on the command line * Added 'adapter' to Renderer::Desc with dx11, dx12, vk honoring it * GL will check that the renderer matches, but cannot select a specific device * Share functionality on dx adapter selection in D3DUtil Note - that on tests that use OpenGL and the adapter doesn't match it will ignore the test (and display a message that the appropriate device couldn't be started) * Small function name improvement. * Variable rename to match type. * Fix typo in Dx12 device selection. * * Add checking if an adapter is warp * Improve some comments --- tools/gfx/render-gl.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tools/gfx/render-gl.cpp') diff --git a/tools/gfx/render-gl.cpp b/tools/gfx/render-gl.cpp index a2d379778..a3703a75b 100644 --- a/tools/gfx/render-gl.cpp +++ b/tools/gfx/render-gl.cpp @@ -677,6 +677,19 @@ SlangResult GLRenderer::initialize(const Desc& desc, void* inWindowHandle) wglMakeCurrent(m_hdc, m_glContext); auto renderer = glGetString(GL_RENDERER); + + if (renderer && desc.adapter.Length() > 0) + { + String lowerAdapter = desc.adapter.ToLower(); + String lowerRenderer = String((const char*)renderer).ToLower(); + + // The adapter is not available + if (lowerRenderer.IndexOf(lowerAdapter) == UInt(-1)) + { + return SLANG_E_NOT_AVAILABLE; + } + } + auto extensions = glGetString(GL_EXTENSIONS); // Load each of our extension functions by name -- cgit v1.2.3