glsl_shader_gen: Remove invariant qualifier (#7376)
* glsl_shader_gen: Remove invariant qualifier * Causes visual regressions in Pokemon with RADV * rasterizer_cache: Clear null surface to transparent
This commit is contained in:
parent
228f26d1e4
commit
8d82adb3d3
|
@ -67,6 +67,16 @@ RasterizerCache<T>::RasterizerCache(Memory::MemorySystem& memory_,
|
|||
.wrap_s = TextureConfig::WrapMode::ClampToBorder,
|
||||
.wrap_t = TextureConfig::WrapMode::ClampToBorder,
|
||||
}));
|
||||
|
||||
auto& null_surface = slot_surfaces[NULL_SURFACE_ID];
|
||||
runtime.ClearTexture(null_surface, {
|
||||
.texture_level = 0,
|
||||
.texture_rect = null_surface.GetScaledRect(),
|
||||
.value =
|
||||
{
|
||||
.color = {0.f, 0.f, 0.f, 0.f},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
|
|
@ -76,7 +76,13 @@ static std::string GetVertexInterfaceDeclaration(bool is_output, bool use_clip_p
|
|||
if (is_output && separable_shader) {
|
||||
// gl_PerVertex redeclaration is required for separate shader object
|
||||
out += "out gl_PerVertex {\n";
|
||||
// Apple Silicon GPU drivers optimize more aggressively, which can create
|
||||
// too much variance and cause visual artifacting in games like Pokemon.
|
||||
#ifdef __APPLE__
|
||||
out += " invariant vec4 gl_Position;\n";
|
||||
#else
|
||||
out += " vec4 gl_Position;\n";
|
||||
#endif
|
||||
if (use_clip_planes) {
|
||||
out += " float gl_ClipDistance[2];\n";
|
||||
}
|
||||
|
|
Reference in New Issue