void VideoBackend::InitBackendInfo() { g_Config.backend_info.api_type = APIType::OpenGL; g_Config.backend_info.bSupportsExclusiveFullscreen = false; g_Config.backend_info.bSupportsOversizedViewports = true; g_Config.backend_info.bSupportsGeometryShaders = true; g_Config.backend_info.bSupports3DVision = false; g_Config.backend_info.bSupportsPostProcessing = true; g_Config.backend_info.bSupportsSSAA = true; g_Config.backend_info.bSupportsReversedDepthRange = true; // Overwritten in Render.cpp later g_Config.backend_info.bSupportsDualSourceBlend = true; g_Config.backend_info.bSupportsPrimitiveRestart = true; g_Config.backend_info.bSupportsPaletteConversion = true; g_Config.backend_info.bSupportsClipControl = true; g_Config.backend_info.bSupportsDepthClamp = true; g_Config.backend_info.Adapters.clear(); // aamodes - 1 is to stay consistent with D3D (means no AA) g_Config.backend_info.AAModes = {1, 2, 4, 8}; // pp shaders g_Config.backend_info.PPShaders = GetShaders(""); g_Config.backend_info.AnaglyphShaders = GetShaders(ANAGLYPH_DIR DIR_SEP); }
static void InitBackendInfo() { g_Config.backend_info.APIType = API_OPENGL; #ifdef _WIN32 g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_BGRA32] = true; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_RGBA32] = true; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_I4_AS_I8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_IA4_AS_IA8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_I8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_IA8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_RGB565] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_DXT1] = true; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_DXT3] = true; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_DXT5] = true; #endif g_Config.backend_info.bSupportsExclusiveFullscreen = false; g_Config.backend_info.bSupportsOversizedViewports = true; g_Config.backend_info.bSupportsGeometryShaders = true; g_Config.backend_info.bSupports3DVision = false; g_Config.backend_info.bSupportsPostProcessing = true; g_Config.backend_info.bSupportsSSAA = true; g_Config.backend_info.bSupportsPixelLighting = true; g_Config.backend_info.bSupportsNormalMaps = true; g_Config.backend_info.bSupportsTessellation = false; g_Config.backend_info.Adapters.clear(); // aamodes g_Config.backend_info.AAModes = { _trans("None"), "2x MSAA", "4x MSAA", "8x MSAA" }; // pp shaders g_Config.backend_info.PPShaders = GetShaders(""); g_Config.backend_info.AnaglyphShaders = GetShaders(ANAGLYPH_DIR DIR_SEP); }
static void InitBackendInfo() { g_Config.backend_info.APIType = API_OPENGL; g_Config.backend_info.bSupportsExclusiveFullscreen = false; g_Config.backend_info.bSupportsOversizedViewports = true; g_Config.backend_info.bSupportsGeometryShaders = true; g_Config.backend_info.bSupports3DVision = false; g_Config.backend_info.bSupportsPostProcessing = true; g_Config.backend_info.bSupportsSSAA = true; g_Config.backend_info.Adapters.clear(); // aamodes - 1 is to stay consistent with D3D (means no AA) g_Config.backend_info.AAModes = { 1, 2, 4, 8 }; // pp shaders g_Config.backend_info.PPShaders = GetShaders(""); g_Config.backend_info.AnaglyphShaders = GetShaders(ANAGLYPH_DIR DIR_SEP); }
void InitBackendInfo() { g_Config.backend_info.APIType = API_OPENGL; g_Config.backend_info.bUseRGBATextures = false; g_Config.backend_info.bSupports3DVision = false; g_Config.backend_info.bSupportsDualSourceBlend = false; // supported, but broken g_Config.backend_info.bSupportsFormatReinterpretation = false; g_Config.backend_info.bSupportsPixelLighting = true; // aamodes const char* caamodes[] = {"None", "2x", "4x", "8x", "8x CSAA", "8xQ CSAA", "16x CSAA", "16xQ CSAA"}; g_Config.backend_info.AAModes.assign(caamodes, caamodes + sizeof(caamodes)/sizeof(*caamodes)); // pp shaders GetShaders(g_Config.backend_info.PPShaders); }
static void InitBackendInfo() { g_Config.backend_info.APIType = API_OPENGL; g_Config.backend_info.bUseMinimalMipCount = false; g_Config.backend_info.bSupportsExclusiveFullscreen = false; //g_Config.backend_info.bSupportsDualSourceBlend = true; // is gpu dependent and must be set in renderer //g_Config.backend_info.bSupportsEarlyZ = true; // is gpu dependent and must be set in renderer g_Config.backend_info.bSupportsOversizedViewports = true; g_Config.backend_info.Adapters.clear(); // aamodes const char* caamodes[] = {_trans("None"), "2x", "4x", "8x", "4x SSAA"}; g_Config.backend_info.AAModes.assign(caamodes, caamodes + sizeof(caamodes)/sizeof(*caamodes)); // pp shaders GetShaders(g_Config.backend_info.PPShaders); }
void InitBackendInfo() { g_Config.backend_info.APIType = API_OPENGL; g_Config.backend_info.bUseRGBATextures = true; g_Config.backend_info.bUseMinimalMipCount = false; g_Config.backend_info.bSupports3DVision = false; //g_Config.backend_info.bSupportsDualSourceBlend = true; // is gpu dependent and must be set in renderer g_Config.backend_info.bSupportsFormatReinterpretation = true; g_Config.backend_info.bSupportsPixelLighting = true; //g_Config.backend_info.bSupportsEarlyZ = true; // is gpu dependent and must be set in renderer g_Config.backend_info.bSupportsOversizedViewports = true; // aamodes const char* caamodes[] = {_trans("None"), "2x", "4x", "8x", "8x CSAA", "8xQ CSAA", "16x CSAA", "16xQ CSAA", "4x SSAA"}; g_Config.backend_info.AAModes.assign(caamodes, caamodes + sizeof(caamodes)/sizeof(*caamodes)); // pp shaders GetShaders(g_Config.backend_info.PPShaders); }
void InitBackendInfo() { HRESULT hr = DX11::D3D::LoadDXGI(); if (SUCCEEDED(hr)) hr = DX11::D3D::LoadD3D(); if (FAILED(hr)) { DX11::D3D::UnloadDXGI(); return; } g_Config.backend_info.APIType = API_D3D11; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_BGRA32] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_RGBA32] = true; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_I4_AS_I8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_IA4_AS_IA8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_I8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_IA8] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_RGB565] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_DXT1] = true; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_DXT3] = false; g_Config.backend_info.bSupportedFormats[PC_TEX_FMT_DXT5] = true; g_Config.backend_info.bSupportsExclusiveFullscreen = true; g_Config.backend_info.bSupportsDualSourceBlend = true; g_Config.backend_info.bSupportsPixelLighting = true; g_Config.backend_info.bNeedBlendIndices = false; g_Config.backend_info.bSupportsOversizedViewports = false; g_Config.backend_info.bSupportsGeometryShaders = true; g_Config.backend_info.bSupports3DVision = true; g_Config.backend_info.bSupportsPostProcessing = true; g_Config.backend_info.bSupportsClipControl = false; g_Config.backend_info.bSupportsSSAA = true; g_Config.backend_info.bSupportsNormalMaps = true; IDXGIFactory* factory; IDXGIAdapter* ad; hr = DX11::PCreateDXGIFactory(__uuidof(IDXGIFactory), (void**)&factory); if (FAILED(hr)) PanicAlert("Failed to create IDXGIFactory object"); // adapters g_Config.backend_info.Adapters.clear(); g_Config.backend_info.AAModes.clear(); while (factory->EnumAdapters((UINT)g_Config.backend_info.Adapters.size(), &ad) != DXGI_ERROR_NOT_FOUND) { const size_t adapter_index = g_Config.backend_info.Adapters.size(); DXGI_ADAPTER_DESC desc; ad->GetDesc(&desc); // TODO: These don't get updated on adapter change, yet if (adapter_index == g_Config.iAdapter) { char buf[32]; std::vector<DXGI_SAMPLE_DESC> modes; modes = DX11::D3D::EnumAAModes(ad); for (unsigned int i = 0; i < modes.size(); ++i) { if (i == 0) sprintf_s(buf, 32, _trans("None")); else if (modes[i].Quality) sprintf_s(buf, 32, _trans("%d samples (quality level %d)"), modes[i].Count, modes[i].Quality); else sprintf_s(buf, 32, _trans("%d samples"), modes[i].Count); g_Config.backend_info.AAModes.push_back(buf); } bool shader_model_5_supported = (DX11::D3D::GetFeatureLevel(ad) >= D3D_FEATURE_LEVEL_11_0); // Requires the earlydepthstencil attribute (only available in shader model 5) g_Config.backend_info.bSupportsEarlyZ = shader_model_5_supported; // Requires full UAV functionality (only available in shader model 5) g_Config.backend_info.bSupportsBBox = shader_model_5_supported; // Requires the instance attribute (only available in shader model 5) g_Config.backend_info.bSupportsGSInstancing = shader_model_5_supported; g_Config.backend_info.bSupportsTessellation = shader_model_5_supported; } g_Config.backend_info.Adapters.push_back(UTF16ToUTF8(desc.Description)); ad->Release(); } factory->Release(); // pp shaders g_Config.backend_info.PPShaders = GetShaders(""); g_Config.backend_info.AnaglyphShaders = GetShaders(ANAGLYPH_DIR DIR_SEP); DX11::D3D::UnloadDXGI(); DX11::D3D::UnloadD3D(); }