Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save peacepenguin/774d0bafe237f8b747cd1c5e605a4e41 to your computer and use it in GitHub Desktop.
Save peacepenguin/774d0bafe237f8b747cd1c5e605a4e41 to your computer and use it in GitHub Desktop.
citra crash with amd gpu in win 11 22h2
With AMD driver 31.0.12001.2008 (22.20.01.02) citra crashes when attempting to launch any game.
Issue also present on previous 31.x driver:
31.0.12000.20010
This is the new AMD driver that fixes many opengl performance issues on Windows with AMD GPU's.
# citra log file of the crash. version: citra-windows-mingw-20220706-353aaaf
[ 0.004708] Config <Info> core/settings.cpp:LogSettings:80: Citra Configuration:
[ 0.004819] Config <Info> core/settings.cpp:operator():77: Core_UseCpuJit: true
[ 0.004821] Config <Info> core/settings.cpp:operator():77: Core_CPUClockPercentage: 100
[ 0.004821] Config <Info> core/settings.cpp:operator():77: Renderer_UseGLES: false
[ 0.004821] Config <Info> core/settings.cpp:operator():77: Renderer_UseHwRenderer: true
[ 0.004822] Config <Info> core/settings.cpp:operator():77: Renderer_UseHwShader: true
[ 0.004822] Config <Info> core/settings.cpp:operator():77: Renderer_SeparableShader: false
[ 0.004822] Config <Info> core/settings.cpp:operator():77: Renderer_ShadersAccurateMul: true
[ 0.004822] Config <Info> core/settings.cpp:operator():77: Renderer_UseShaderJit: true
[ 0.004826] Config <Info> core/settings.cpp:operator():77: Renderer_UseResolutionFactor: 1
[ 0.004827] Config <Info> core/settings.cpp:operator():77: Renderer_FrameLimit: 100
[ 0.004827] Config <Info> core/settings.cpp:operator():77: Renderer_UseFrameLimitAlternate: false
[ 0.004829] Config <Info> core/settings.cpp:operator():77: Renderer_FrameLimitAlternate: 200
[ 0.004829] Config <Info> core/settings.cpp:operator():77: Renderer_VSyncNew: true
[ 0.004829] Config <Info> core/settings.cpp:operator():77: Renderer_PostProcessingShader: none (builtin)
[ 0.004830] Config <Info> core/settings.cpp:operator():77: Renderer_FilterMode: true
[ 0.004830] Config <Info> core/settings.cpp:operator():77: Renderer_TextureFilterName: none
[ 0.004830] Config <Info> core/settings.cpp:operator():77: Stereoscopy_Render3d: 0
[ 0.004830] Config <Info> core/settings.cpp:operator():77: Stereoscopy_Factor3d: 0
[ 0.004831] Config <Info> core/settings.cpp:operator():77: Layout_LayoutOption: 0
[ 0.004831] Config <Info> core/settings.cpp:operator():77: Layout_SwapScreen: false
[ 0.004831] Config <Info> core/settings.cpp:operator():77: Layout_UprightScreen: false
[ 0.004831] Config <Info> core/settings.cpp:operator():77: Utility_DumpTextures: false
[ 0.004832] Config <Info> core/settings.cpp:operator():77: Utility_CustomTextures: false
[ 0.004832] Config <Info> core/settings.cpp:operator():77: Utility_UseDiskShaderCache: true
[ 0.004832] Config <Info> core/settings.cpp:operator():77: Audio_EnableDspLle: false
[ 0.004832] Config <Info> core/settings.cpp:operator():77: Audio_EnableDspLleMultithread: false
[ 0.004833] Config <Info> core/settings.cpp:operator():77: Audio_OutputEngine: auto
[ 0.004833] Config <Info> core/settings.cpp:operator():77: Audio_EnableAudioStretching: true
[ 0.004833] Config <Info> core/settings.cpp:operator():77: Audio_OutputDevice: auto
[ 0.004833] Config <Info> core/settings.cpp:operator():77: Audio_InputDeviceType: 0
[ 0.004834] Config <Info> core/settings.cpp:operator():77: Audio_InputDevice: Default
[ 0.004834] Config <Info> core/settings.cpp:operator():77: Camera_OuterRightName: blank
[ 0.004834] Config <Info> core/settings.cpp:operator():77: Camera_OuterRightConfig:
[ 0.004834] Config <Info> core/settings.cpp:operator():77: Camera_OuterRightFlip: 0
[ 0.004835] Config <Info> core/settings.cpp:operator():77: Camera_InnerName: blank
[ 0.004835] Config <Info> core/settings.cpp:operator():77: Camera_InnerConfig:
[ 0.004835] Config <Info> core/settings.cpp:operator():77: Camera_InnerFlip: 0
[ 0.004836] Config <Info> core/settings.cpp:operator():77: Camera_OuterLeftName: blank
[ 0.004836] Config <Info> core/settings.cpp:operator():77: Camera_OuterLeftConfig:
[ 0.004836] Config <Info> core/settings.cpp:operator():77: Camera_OuterLeftFlip: 0
[ 0.004837] Config <Info> core/settings.cpp:operator():77: DataStorage_UseVirtualSd: true
[ 0.004837] Config <Info> core/settings.cpp:operator():77: DataStorage_SdmcDir: C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/sdmc/
[ 0.004837] Config <Info> core/settings.cpp:operator():77: DataStorage_NandDir: C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/nand/
[ 0.004838] Config <Info> core/settings.cpp:operator():77: System_IsNew3ds: true
[ 0.004838] Config <Info> core/settings.cpp:operator():77: System_RegionValue: -1
[ 0.004838] Config <Info> core/settings.cpp:operator():77: Debugging_UseGdbstub: false
[ 0.004839] Config <Info> core/settings.cpp:operator():77: Debugging_GdbstubPort: 24689
[ 0.130270] Input <Info> input_common/udp/client.cpp:StartCommunication:207: Starting communication with UDP input server on 127.0.0.1:26760
[ 0.435989] Frontend <Info> citra_qt/main.cpp:GMainWindow:197: Citra Version: Nightly 1773 | HEAD-353aaaf
[ 0.436159] Frontend <Info> citra_qt/main.cpp:GMainWindow:213: Host CPU: AMD Ryzen 9 5900X 12-Core Processor | AVX2 | FMA
[ 0.436176] Frontend <Info> citra_qt/main.cpp:GMainWindow:215: Host OS: Windows 10 (10.0)
[ 1.887106] Frontend <Warning> citra_qt/main.cpp:CheckForUpdates:841: Unable to start check for updates
[ 25.507387] Frontend <Info> citra_qt/main.cpp:BootGame:1031: Citra starting...
[ 25.585037] Audio.DSP <Info> audio_core/hle/wmf_decoder.cpp:Impl:67: Media Foundation activated
[ 25.585985] Audio.DSP <Info> audio_core/hle/wmf_decoder_utils.cpp:MFDecoderInit:50: Windows(R) Media Foundation found 1 suitable decoder(s)
[ 25.683105] Audio.Sink <Info> audio_core/cubeb_sink.cpp:StateCallback:137: Cubeb Audio Stream Started
[ 25.683117] RPC_Server <Info> core/rpc/rpc_server.cpp:RPCServer:12: Starting RPC server ...
[ 25.683191] RPC_Server <Info> core/rpc/rpc_server.cpp:HandleRequestsLoop:113: Request handler started.
[ 25.683240] RPC_Server <Info> core/rpc/rpc_server.cpp:RPCServer:16: RPC started.
[ 25.690417] Service.FS <Error> core/file_sys/savedata_archive.cpp:OpenFile:77: Non-existing file C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/nand/data/00000000000000000000000000000000/sysdata/00010017/00000000/config can't be open without mode create.
[ 25.690628] Service.FS <Error> core/file_sys/savedata_archive.cpp:DeleteFile:120: File not found C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/nand/data/00000000000000000000000000000000/sysdata/00010017/00000000/config
[ 25.694514] Service.HTTP <Error> core/hle/service/http_c.cpp:DecryptClCertA:806: ClCertA file missing
[ 25.716741] Render.OpenGL <Info> video_core/renderer_opengl/renderer_opengl.cpp:Init:1261: GL_VERSION: 3.3.0 Core Profile Context 22.20.01.02.220615
[ 25.716744] Render.OpenGL <Info> video_core/renderer_opengl/renderer_opengl.cpp:Init:1262: GL_VENDOR: ATI Technologies Inc.
[ 25.716745] Render.OpenGL <Info> video_core/renderer_opengl/renderer_opengl.cpp:Init:1263: GL_RENDERER: AMD Radeon RX 6800 XT
[ 25.755844] Render.OpenGL <Info> video_core/renderer_opengl/gl_format_reinterpreter.cpp:ShaderD24S8toRGBA8:291: Texture views are unsupported, reinterpretation will do intermediate copy
[ 25.755855] Render.OpenGL <Info> video_core/renderer_opengl/gl_format_reinterpreter.cpp:FormatReinterpreterOpenGL:378: Using shader for D24S8 to RGBA8 reinterpretation
[ 25.758005] Render.OpenGL <Warning> video_core/renderer_opengl/gl_rasterizer.cpp:RasterizerOpenGL:61: Shadow might not be able to render because of unsupported OpenGL extensions.
[ 25.760616] Loader <Info> core/loader/ncch.cpp:Load:192: Program ID: 0004000000062300
[ 25.760660] Service.FS <Warning> core/file_sys/ncch_container.cpp:OpenFile:130: Failed to open C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/sdmc/Nintendo 3DS/00000000000000000000000000000000/00000000000000000000000000000000/title/0004000e/00062300/content/00000000.app
[ 25.786900] Loader <Info> core/hle/kernel/process.cpp:ParseKernelCaps:141: ExHeader kernel version: 2.30
[ 25.788258] Service.FS <Info> core/file_sys/ncch_container.cpp:LoadSectionExeFS:505: Attempting to load logo from the ExeFS
[ 25.789250] Service.CFG <Info> core/hle/service/cfg/cfg.cpp:SetPreferredRegionCodes:656: Preferred region code set to 1
[ 25.796259] Render.OpenGL <Info> video_core/renderer_opengl/gl_shader_disk_cache.cpp:LoadTransferable:117: No transferable shader cache found for game with title id=0004000000062300
[ 25.853719] Service.SRV <Warning> core/hle/service/sm/srv.cpp:RegisterClient:63: (STUBBED) called. Caller PID=11
[ 25.853861] Service.SRV <Warning> core/hle/service/sm/srv.cpp:EnableNotification:85: (STUBBED) called
[ 25.855394] Service.APT <Warning> core/hle/service/apt/apt.cpp:GetLockHandle:317: (STUBBED) called applet_attributes=0X00000000
[ 25.857779] Service.NDM <Warning> core/hle/service/ndm/ndm_u.cpp:OverrideDefaultDaemons:186: (STUBBED) bit_mask=0x0000000F
[ 25.858310] Service.NDM <Warning> core/hle/service/ndm/ndm_u.cpp:SuspendDaemons:74: (STUBBED) bit_mask=0x00000006
[ 25.860745] Service.FS <Error> ./core/file_sys/archive_backend.h:GetOpenDelayNs:193: Delay generator was not initalized. Using default
[ 25.867069] Service.APT <Warning> core/hle/service/apt/apt.cpp:NotifyToWait:296: (STUBBED) app_id=768
[ 25.868887] Service.APT <Warning> core/hle/service/apt/apt.cpp:AppletUtility:590: (STUBBED) called command=0X00000007, input_size=0X00000004, output_size=0X00000001
[ 25.869155] Service.APT <Warning> core/hle/service/apt/apt.cpp:AppletUtility:590: (STUBBED) called command=0X00000004, input_size=0X00000001, output_size=0X00000001
[ 25.870960] Service.FS <Error> core/file_sys/savedata_archive.cpp:CreateFile:233: C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/nand/data/00000000000000000000000000000000/extdata/00048000/F000000B/user/gamecoin.dat already exists
[ 26.835842] Service.GSP <Warning> core/hle/service/gsp/gsp_gpu.cpp:AcquireRight:705: called flag=00000000 process=11 thread_id=0
[ 26.845621] Render.OpenGL <Error> video_core/renderer_opengl/gl_rasterizer_cache.cpp:MortonCopy:188: Out of bound texture
[ 26.927826] Service.DSP <Info> audio_core/hle/hle.cpp:LoadComponent:496: Firmware hash: 0x29a93a8a5fcbb06a
[ 26.927829] Service.DSP <Info> audio_core/hle/hle.cpp:LoadComponent:500: Structures hash: 0xd194fc96db654a27
[ 26.927831] Service.DSP <Info> core/hle/service/dsp/dsp_dsp.cpp:LoadComponent:188: called size=0xBE34, prog_mask=0x000000FF, data_mask=0x000E00FF
[ 26.928234] Service.DSP <Info> core/hle/service/dsp/dsp_dsp.cpp:RegisterInterruptEvents:254: Registered interrupt=2, channel=2, event=event-0039ddb8
[ 26.928399] Service.DSP <Warning> core/hle/service/dsp/dsp_dsp.cpp:GetSemaphoreEventHandle:271: (STUBBED) called
[ 26.928550] Service.DSP <Warning> core/hle/service/dsp/dsp_dsp.cpp:SetSemaphoreMask:281: (STUBBED) called mask=0x2000
[ 26.928810] Audio.DSP <Info> audio_core/hle/hle.cpp:PipeWrite:257: Application has requested initialization of DSP hardware
[ 26.928917] Service.DSP <Info> core/hle/service/dsp/dsp_dsp.cpp:SetSemaphore:57: called, semaphore_value=4000
[ 26.930824] Service.DSP <Info> core/hle/service/dsp/dsp_dsp.cpp:SetSemaphore:57: called, semaphore_value=4000
[ 27.493341] Service.FS <Error> core/file_sys/archive_extsavedata.cpp:OpenFile:141: C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/nand/data/00000000000000000000000000000000/extdata/00048000/F000000B/user/ubll.lst not found
[ 27.493345] Service.FS <Error> core/hle/service/fs/fs_user.cpp:OpenFile:77: failed to get a handle for file [Wchar: /ubll.lst]
[ 27.503695] Service.FS <Error> core/file_sys/archive_extsavedata.cpp:OpenFile:141: C:\inbox\citra-windows-mingw-20220706-353aaaf\nightly-mingw/user/nand/data/00000000000000000000000000000000/extdata/00048000/F000000B/user/ublg.lst not found
[ 27.503698] Service.FS <Error> core/hle/service/fs/fs_user.cpp:OpenFile:77: failed to get a handle for file [Wchar: /ublg.lst]
[ 27.504576] Service.APT <Warning> core/hle/service/apt/apt.cpp:AppletUtility:590: (STUBBED) called command=0X00000004, input_size=0X00000001, output_size=0X00000001
[ 28.237964] Service.FS <Error> core/hle/service/fs/fs_user.cpp:OpenArchive:335: failed to get a handle for archive archive_id=0x00000004 archive_path=[Empty]
[ 28.329532] Render.OpenGL <Error> video_core/renderer_opengl/gl_shader_util.cpp:LoadShader:63: Error compiling fragment shader:
WARNING: 0:29: 'defined' : nonportable when expanded from macros for preprocessor expression
WARNING: 0:29: 'defined' : nonportable when expanded from macros for preprocessor expression
WARNING: 0:133: 'defined' : nonportable when expanded from macros for preprocessor expression
WARNING: 0:133: 'defined' : nonportable when expanded from macros for preprocessor expression
ERROR: 0:149: 'imageSize' : no matching overloaded function found
ERROR: 0:149: '' : missing #endif
ERROR: 0:149: '' : compilation terminated
ERROR: 3 compilation errors. No code generated.
[ 28.329539] Render.OpenGL <Error> video_core/renderer_opengl/gl_shader_util.cpp:LoadShader:65: Shader source code:
#version 330
#extension GL_ARB_shader_image_load_store : enable
#extension GL_ARB_shader_image_size : enable
#define ALLOW_SHADOW (defined(GL_ARB_shader_image_load_store) && defined(GL_ARB_shader_image_size))
#extension GL_ARB_separate_shader_objects : enable
layout (location=1) in vec4 primary_color;
layout (location=2) in vec2 texcoord0;
layout (location=3) in vec2 texcoord1;
layout (location=4) in vec2 texcoord2;
layout (location=5) in float texcoord0_w;
layout (location=6) in vec4 normquat;
layout (location=7) in vec3 view;
#ifndef CITRA_GLES
in vec4 gl_FragCoord;
#endif // CITRA_GLES
out vec4 color;
uniform sampler2D tex0;
uniform sampler2D tex1;
uniform sampler2D tex2;
uniform samplerCube tex_cube;
uniform samplerBuffer texture_buffer_lut_lf;
uniform samplerBuffer texture_buffer_lut_rg;
uniform samplerBuffer texture_buffer_lut_rgba;
#if ALLOW_SHADOW
layout(r32ui) uniform readonly uimage2D shadow_texture_px;
layout(r32ui) uniform readonly uimage2D shadow_texture_nx;
layout(r32ui) uniform readonly uimage2D shadow_texture_py;
layout(r32ui) uniform readonly uimage2D shadow_texture_ny;
layout(r32ui) uniform readonly uimage2D shadow_texture_pz;
layout(r32ui) uniform readonly uimage2D shadow_texture_nz;
layout(r32ui) uniform uimage2D shadow_buffer;
#endif
#define NUM_TEV_STAGES 6
#define NUM_LIGHTS 8
#define NUM_LIGHTING_SAMPLERS 24
struct LightSrc {
vec3 specular_0;
vec3 specular_1;
vec3 diffuse;
vec3 ambient;
vec3 position;
vec3 spot_direction;
float dist_atten_bias;
float dist_atten_scale;
};
layout (std140) uniform shader_data {
int framebuffer_scale;
int alphatest_ref;
float depth_scale;
float depth_offset;
float shadow_bias_constant;
float shadow_bias_linear;
int scissor_x1;
int scissor_y1;
int scissor_x2;
int scissor_y2;
int fog_lut_offset;
int proctex_noise_lut_offset;
int proctex_color_map_offset;
int proctex_alpha_map_offset;
int proctex_lut_offset;
int proctex_diff_lut_offset;
float proctex_bias;
int shadow_texture_bias;
ivec4 lighting_lut_offset[NUM_LIGHTING_SAMPLERS / 4];
vec3 fog_color;
vec2 proctex_noise_f;
vec2 proctex_noise_a;
vec2 proctex_noise_p;
vec3 lighting_global_ambient;
LightSrc light_src[NUM_LIGHTS];
vec4 const_color[NUM_TEV_STAGES];
vec4 tev_combiner_buffer_color;
vec4 clip_coef;
};
// Rotate the vector v by the quaternion q
vec3 quaternion_rotate(vec4 q, vec3 v) {
return v + 2.0 * cross(q.xyz, cross(q.xyz, v) + q.w * v);
}
float LookupLightingLUT(int lut_index, int index, float delta) {
vec2 entry = texelFetch(texture_buffer_lut_lf, lighting_lut_offset[lut_index >> 2][lut_index & 3] + index).rg;
return entry.r + entry.g * delta;
}
float LookupLightingLUTUnsigned(int lut_index, float pos) {
int index = clamp(int(pos * 256.0), 0, 255);
float delta = pos * 256.0 - float(index);
return LookupLightingLUT(lut_index, index, delta);
}
float LookupLightingLUTSigned(int lut_index, float pos) {
int index = clamp(int(pos * 128.0), -128, 127);
float delta = pos * 128.0 - float(index);
if (index < 0) index += 256;
return LookupLightingLUT(lut_index, index, delta);
}
float byteround(float x) {
return round(x * 255.0) * (1.0 / 255.0);
}
vec2 byteround(vec2 x) {
return round(x * 255.0) * (1.0 / 255.0);
}
vec3 byteround(vec3 x) {
return round(x * 255.0) * (1.0 / 255.0);
}
vec4 byteround(vec4 x) {
return round(x * 255.0) * (1.0 / 255.0);
}
// PICA's LOD formula for 2D textures.
// This LOD formula is the same as the LOD lower limit defined in OpenGL.
// f(x, y) >= max{m_u, m_v, m_w}
// (See OpenGL 4.6 spec, 8.14.1 - Scale Factor and Level-of-Detail)
float getLod(vec2 coord) {
vec2 d = max(abs(dFdx(coord)), abs(dFdy(coord)));
return log2(max(d.x, d.y));
}
#if ALLOW_SHADOW
uvec2 DecodeShadow(uint pixel) {
return uvec2(pixel >> 8, pixel & 0xFFu);
}
uint EncodeShadow(uvec2 pixel) {
return (pixel.x << 8) | pixel.y;
}
float CompareShadow(uint pixel, uint z) {
uvec2 p = DecodeShadow(pixel);
return mix(float(p.y) * (1.0 / 255.0), 0.0, p.x <= z);
}
float SampleShadow2D(ivec2 uv, uint z) {
if (any(bvec4( lessThan(uv, ivec2(0)), greaterThanEqual(uv, imageSize(shadow_texture_px)) )))
return 1.0;
return CompareShadow(imageLoad(shadow_texture_px, uv).x, z);
}
float mix2(vec4 s, vec2 a) {
vec2 t = mix(s.xy, s.zw, a.yy);
return mix(t.x, t.y, a.x);
}
vec4 shadowTexture(vec2 uv, float w) {
uv /= w;uint z = uint(max(0, int(min(abs(w), 1.0) * float(0xFFFFFF)) - shadow_texture_bias));
vec2 coord = vec2(imageSize(shadow_texture_px)) * uv - vec2(0.5);
vec2 coord_floor = floor(coord);
vec2 f = coord - coord_floor;
ivec2 i = ivec2(coord_floor);
vec4 s = vec4(
SampleShadow2D(i , z),
SampleShadow2D(i + ivec2(1, 0), z),
SampleShadow2D(i + ivec2(0, 1), z),
SampleShadow2D(i + ivec2(1, 1), z));
return vec4(mix2(s, f));
}
vec4 shadowTextureCube(vec2 uv, float w) {
ivec2 size = imageSize(shadow_texture_px);
vec3 c = vec3(uv, w);
vec3 a = abs(c);
if (a.x > a.y && a.x > a.z) {
w = a.x;
uv = -c.zy;
if (c.x < 0.0) uv.x = -uv.x;
} else if (a.y > a.z) {
w = a.y;
uv = c.xz;
if (c.y < 0.0) uv.y = -uv.y;
} else {
w = a.z;
uv = -c.xy;
if (c.z > 0.0) uv.x = -uv.x;
}
uint z = uint(max(0, int(min(w, 1.0) * float(0xFFFFFF)) - shadow_texture_bias));
vec2 coord = vec2(size) * (uv / w * vec2(0.5) + vec2(0.5)) - vec2(0.5);
vec2 coord_floor = floor(coord);
vec2 f = coord - coord_floor;
ivec2 i00 = ivec2(coord_floor);
ivec2 i10 = i00 + ivec2(1, 0);
ivec2 i01 = i00 + ivec2(0, 1);
ivec2 i11 = i00 + ivec2(1, 1);
ivec2 cmin = ivec2(0), cmax = size - ivec2(1, 1);
i00 = clamp(i00, cmin, cmax);
i10 = clamp(i10, cmin, cmax);
i01 = clamp(i01, cmin, cmax);
i11 = clamp(i11, cmin, cmax);
uvec4 pixels;
// This part should have been refactored into functions,
// but many drivers don't like passing uimage2D as parameters
if (a.x > a.y && a.x > a.z) {
if (c.x > 0.0)
pixels = uvec4(
imageLoad(shadow_texture_px, i00).r,
imageLoad(shadow_texture_px, i10).r,
imageLoad(shadow_texture_px, i01).r,
imageLoad(shadow_texture_px, i11).r);
else
pixels = uvec4(
imageLoad(shadow_texture_nx, i00).r,
imageLoad(shadow_texture_nx, i10).r,
imageLoad(shadow_texture_nx, i01).r,
imageLoad(shadow_texture_nx, i11).r);
} else if (a.y > a.z) {
if (c.y > 0.0)
pixels = uvec4(
imageLoad(shadow_texture_py, i00).r,
imageLoad(shadow_texture_py, i10).r,
imageLoad(shadow_texture_py, i01).r,
imageLoad(shadow_texture_py, i11).r);
else
pixels = uvec4(
imageLoad(shadow_texture_ny, i00).r,
imageLoad(shadow_texture_ny, i10).r,
imageLoad(shadow_texture_ny, i01).r,
imageLoad(shadow_texture_ny, i11).r);
} else {
if (c.z > 0.0)
pixels = uvec4(
imageLoad(shadow_texture_pz, i00).r,
imageLoad(shadow_texture_pz, i10).r,
imageLoad(shadow_texture_pz, i01).r,
imageLoad(shadow_texture_pz, i11).r);
else
pixels = uvec4(
imageLoad(shadow_texture_nz, i00).r,
imageLoad(shadow_texture_nz, i10).r,
imageLoad(shadow_texture_nz, i01).r,
imageLoad(shadow_texture_nz, i11).r);
}
vec4 s = vec4(
CompareShadow(pixels.x, z),
CompareShadow(pixels.y, z),
CompareShadow(pixels.z, z),
CompareShadow(pixels.w, z));
return vec4(mix2(s, f));
}
#else
vec4 shadowTexture(vec2 uv, float w) {
return vec4(1.0);
}
vec4 shadowTextureCube(vec2 uv, float w) {
return vec4(1.0);
}
#endif
void main() {
vec4 rounded_primary_color = byteround(primary_color);
vec4 primary_fragment_color = vec4(0.0);
vec4 secondary_fragment_color = vec4(0.0);
if (!(gl_FragCoord.x >= float(scissor_x1) && gl_FragCoord.y >= float(scissor_y1) && gl_FragCoord.x < float(scissor_x2) && gl_FragCoord.y < float(scissor_y2))) discard;
float z_over_w = 2.0 * gl_FragCoord.z - 1.0;
float depth = z_over_w * depth_scale + depth_offset;
vec4 combiner_buffer = vec4(0.0);
vec4 next_combiner_buffer = tev_combiner_buffer_color;
vec4 last_tex_env_out = vec4(0.0);
vec3 color_results_0_1 = rounded_primary_color.rgb;
vec3 color_results_0_2 = last_tex_env_out.rgb;
vec3 color_results_0_3 = last_tex_env_out.rgb;
vec3 color_results_0[3] = vec3[3](color_results_0_1, color_results_0_2, color_results_0_3);
vec3 color_output_0 = byteround(clamp(color_results_0[0], vec3(0.0), vec3(1.0)));
float alpha_results_0[3] = float[3](rounded_primary_color.a, last_tex_env_out.a, last_tex_env_out.a);
float alpha_output_0 = byteround(clamp(alpha_results_0[0], 0.0, 1.0));
last_tex_env_out = vec4(clamp(color_output_0 * 1.0, vec3(0.0), vec3(1.0)), clamp(alpha_output_0 * 1.0, 0.0, 1.0));
combiner_buffer = next_combiner_buffer;
combiner_buffer = next_combiner_buffer;
combiner_buffer = next_combiner_buffer;
combiner_buffer = next_combiner_buffer;
combiner_buffer = next_combiner_buffer;
combiner_buffer = next_combiner_buffer;
gl_FragDepth = depth;
color = byteround(last_tex_env_out);
}
[ 28.329546] Render.OpenGL <Error> video_core/renderer_opengl/gl_shader_util.cpp:LoadProgram:102: Error linking shader:
Program Link Failed for unknown reason.
[ 28.329547] Debug <Critical> video_core/renderer_opengl/gl_shader_util.cpp:operator():106: Assertion Failed!
Shader not linked
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment