Implement dual-source blending in shader

For some GLES drivers that don't support dual-source blending, but do
support GL_EXT_shader_framebuffer_fetch, this might be useful.
This commit is contained in:
Jonathan Hamilton
2017-10-25 22:44:39 -07:00
parent 11976526d1
commit 29a9ed043b
12 changed files with 222 additions and 41 deletions

View File

@ -32,6 +32,7 @@ ShaderHostConfig ShaderHostConfig::GetCurrent()
bits.backend_bitfield = g_ActiveConfig.backend_info.bSupportsBitfield;
bits.backend_dynamic_sampler_indexing =
g_ActiveConfig.backend_info.bSupportsDynamicSamplerIndexing;
bits.backend_shader_framebuffer_fetch = g_ActiveConfig.backend_info.bSupportsFramebufferFetch;
return bits;
}
@ -68,9 +69,9 @@ std::string GetDiskShaderCacheFileName(APIType api_type, const char* type, bool
if (include_host_config)
{
// We're using 20 bits, so 5 hex characters.
// We're using 21 bits, so 6 hex characters.
ShaderHostConfig host_config = ShaderHostConfig::GetCurrent();
filename += StringFromFormat("-%05X", host_config.bits);
filename += StringFromFormat("-%06X", host_config.bits);
}
filename += ".cache";