vo/gpu-next/libplacebo errors
Xathros1 opened this issue · comments
The video is rendered as solid purple, with audio playing in the background
Video will render on lower than native (4k UHD) resolutions like FHD but without shaders.
Log
vo/gpu-next/libplacebo: shaderc output:
vo/gpu-next/libplacebo: input:103: error: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression"
vo/gpu-next/libplacebo:
vo/gpu-next/libplacebo: shaderc compile status 'error' (1 errors, 0 warnings)
vo/gpu-next/libplacebo: vk_compile_glsl(gpu, tmp, GLSL_SHADER_FRAGMENT, params->glsl_shader, &frag): VK_ERROR_INITIALIZATION_FAILED (../src/vulkan/gpu_pass.c:511)
vo/gpu-next/libplacebo: vertex shader source:
vo/gpu-next/libplacebo: [ 1] #version 450
vo/gpu-next/libplacebo: [ 2] #extension GL_KHR_shader_subgroup_basic : enable
vo/gpu-next/libplacebo: [ 3] #extension GL_KHR_shader_subgroup_vote : enable
vo/gpu-next/libplacebo: [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
vo/gpu-next/libplacebo: [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
vo/gpu-next/libplacebo: [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
vo/gpu-next/libplacebo: [ 7] #extension GL_ARB_texture_gather : enable
vo/gpu-next/libplacebo: [ 8] layout(std430, push_constant) uniform PushC {
vo/gpu-next/libplacebo: [ 9] layout(offset=0) vec2 _tex_size_2_0;
vo/gpu-next/libplacebo: [ 10] layout(offset=8) vec2 _tex_pt_3_0;
vo/gpu-next/libplacebo: [ 11] layout(offset=16) vec2 _offset_4_0;
vo/gpu-next/libplacebo: [ 12] layout(offset=24) vec2 _tex_size_8_0;
vo/gpu-next/libplacebo: [ 13] layout(offset=32) vec2 _tex_pt_9_0;
vo/gpu-next/libplacebo: [ 14] layout(offset=40) vec2 _offset_10_0;
vo/gpu-next/libplacebo: [ 15] layout(offset=48) int _frame_12_0;
vo/gpu-next/libplacebo: [ 16] layout(offset=52) float _random_13_0;
vo/gpu-next/libplacebo: [ 17] layout(offset=56) vec2 _input_size_14_0;
vo/gpu-next/libplacebo: [ 18] layout(offset=64) vec2 _target_size_15_0;
vo/gpu-next/libplacebo: [ 19] layout(offset=72) vec2 _tex_offset_16_0;
vo/gpu-next/libplacebo: [ 20] };
vo/gpu-next/libplacebo: [ 21] layout(constant_id=0) const float _const_5_0 = 1;
vo/gpu-next/libplacebo: [ 22] layout(constant_id=1) const float _const_11_0 = 1;
vo/gpu-next/libplacebo: [ 23] layout(constant_id=2) const float _const_0_1 = 1;
vo/gpu-next/libplacebo: [ 24] layout(constant_id=3) const float _const_1_1 = 1;
vo/gpu-next/libplacebo: [ 25] layout(constant_id=4) const float _const_0_2 = 1;
vo/gpu-next/libplacebo: [ 26] layout(constant_id=5) const float _const_1_2 = 1;
vo/gpu-next/libplacebo: [ 27] layout(binding=0) uniform sampler2D _hook_tex_0_0;
vo/gpu-next/libplacebo: [ 28] layout(binding=1) uniform sampler2D _hook_tex_6_0;
vo/gpu-next/libplacebo: [ 29] layout(location=0) in vec2 _tex_coord_1_0_v;
vo/gpu-next/libplacebo: [ 30] layout(location=0) out vec2 _tex_coord_1_0;
vo/gpu-next/libplacebo: [ 31] layout(location=1) in vec2 _tex_coord_7_0_v;
vo/gpu-next/libplacebo: [ 32] layout(location=1) out vec2 _tex_coord_7_0;
vo/gpu-next/libplacebo: [ 33] layout(location=2) in vec2 _position_19_0_v;
vo/gpu-next/libplacebo: [ 34] void main() {
vo/gpu-next/libplacebo: [ 35] _tex_coord_1_0 = _tex_coord_1_0_v;
vo/gpu-next/libplacebo: [ 36] _tex_coord_7_0 = _tex_coord_7_0_v;
vo/gpu-next/libplacebo: [ 37] vec2 va_pos = _position_19_0_v;
vo/gpu-next/libplacebo: [ 38] gl_Position = vec4(va_pos, 0.0, 1.0);
vo/gpu-next/libplacebo: [ 39] }
vo/gpu-next/libplacebo: fragment shader source:
vo/gpu-next/libplacebo: [ 1] #version 450
vo/gpu-next/libplacebo: [ 2] #extension GL_KHR_shader_subgroup_basic : enable
vo/gpu-next/libplacebo: [ 3] #extension GL_KHR_shader_subgroup_vote : enable
vo/gpu-next/libplacebo: [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
vo/gpu-next/libplacebo: [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
vo/gpu-next/libplacebo: [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
vo/gpu-next/libplacebo: [ 7] #extension GL_ARB_texture_gather : enable
vo/gpu-next/libplacebo: [ 8] layout(std430, push_constant) uniform PushC {
vo/gpu-next/libplacebo: [ 9] layout(offset=0) vec2 _tex_size_2_0;
vo/gpu-next/libplacebo: [ 10] layout(offset=8) vec2 _tex_pt_3_0;
vo/gpu-next/libplacebo: [ 11] layout(offset=16) vec2 _offset_4_0;
vo/gpu-next/libplacebo: [ 12] layout(offset=24) vec2 _tex_size_8_0;
vo/gpu-next/libplacebo: [ 13] layout(offset=32) vec2 _tex_pt_9_0;
vo/gpu-next/libplacebo: [ 14] layout(offset=40) vec2 _offset_10_0;
vo/gpu-next/libplacebo: [ 15] layout(offset=48) int _frame_12_0;
vo/gpu-next/libplacebo: [ 16] layout(offset=52) float _random_13_0;
vo/gpu-next/libplacebo: [ 17] layout(offset=56) vec2 _input_size_14_0;
vo/gpu-next/libplacebo: [ 18] layout(offset=64) vec2 _target_size_15_0;
vo/gpu-next/libplacebo: [ 19] layout(offset=72) vec2 _tex_offset_16_0;
vo/gpu-next/libplacebo: [ 20] };
vo/gpu-next/libplacebo: [ 21] layout(constant_id=0) const float _const_5_0 = 1;
vo/gpu-next/libplacebo: [ 22] layout(constant_id=1) const float _const_11_0 = 1;
vo/gpu-next/libplacebo: [ 23] layout(constant_id=2) const float _const_0_1 = 1;
vo/gpu-next/libplacebo: [ 24] layout(constant_id=3) const float _const_1_1 = 1;
vo/gpu-next/libplacebo: [ 25] layout(constant_id=4) const float _const_0_2 = 1;
vo/gpu-next/libplacebo: [ 26] layout(constant_id=5) const float _const_1_2 = 1;
vo/gpu-next/libplacebo: [ 27] layout(binding=0) uniform sampler2D _hook_tex_0_0;
vo/gpu-next/libplacebo: [ 28] layout(binding=1) uniform sampler2D _hook_tex_6_0;
vo/gpu-next/libplacebo: [ 29] layout(location=0) in vec2 _tex_coord_1_0;
vo/gpu-next/libplacebo: [ 30] layout(location=1) in vec2 _tex_coord_7_0;
vo/gpu-next/libplacebo: [ 31] layout(location=0) out vec4 out_color;
vo/gpu-next/libplacebo: [ 32]
vo/gpu-next/libplacebo: [ 33] #define CHROMA_raw _hook_tex_0_0
vo/gpu-next/libplacebo: [ 34] #define CHROMA_pos _tex_coord_1_0
vo/gpu-next/libplacebo: [ 35] #define CHROMA_map _tex_coord_1_0_map
vo/gpu-next/libplacebo: [ 36] #define CHROMA_size _tex_size_2_0
vo/gpu-next/libplacebo: [ 37] #define CHROMA_pt _tex_pt_3_0
vo/gpu-next/libplacebo: [ 38] #define CHROMA_off _offset_4_0
vo/gpu-next/libplacebo: [ 39] #define CHROMA_mul _const_5_0
vo/gpu-next/libplacebo: [ 40] #define CHROMA_rot mat2(1.0, 0.0, 0.0, 1.0)
vo/gpu-next/libplacebo: [ 41] #define CHROMA_tex(pos) (_const_5_0 * vec4(texture(_hook_tex_0_0, pos)))
vo/gpu-next/libplacebo: [ 42] #define CHROMA_texOff(off) (CHROMA_tex(_tex_coord_1_0 + _tex_pt_3_0 * vec2(off)))
vo/gpu-next/libplacebo: [ 43] #define CHROMA_gather(pos, c) (_const_5_0 * vec4(textureGather(_hook_tex_0_0, pos, c)))
vo/gpu-next/libplacebo: [ 44] #define HOOKED_raw CHROMA_raw
vo/gpu-next/libplacebo: [ 45] #define HOOKED_pos CHROMA_pos
vo/gpu-next/libplacebo: [ 46] #define HOOKED_size CHROMA_size
vo/gpu-next/libplacebo: [ 47] #define HOOKED_rot CHROMA_rot
vo/gpu-next/libplacebo: [ 48] #define HOOKED_off CHROMA_off
vo/gpu-next/libplacebo: [ 49] #define HOOKED_pt CHROMA_pt
vo/gpu-next/libplacebo: [ 50] #define HOOKED_map CHROMA_map
vo/gpu-next/libplacebo: [ 51] #define HOOKED_mul CHROMA_mul
vo/gpu-next/libplacebo: [ 52] #define HOOKED_tex CHROMA_tex
vo/gpu-next/libplacebo: [ 53] #define HOOKED_texOff CHROMA_texOff
vo/gpu-next/libplacebo: [ 54] #define HOOKED_gather CHROMA_gather
vo/gpu-next/libplacebo: [ 55] #define LUMA_raw _hook_tex_6_0
vo/gpu-next/libplacebo: [ 56] #define LUMA_pos _tex_coord_7_0
vo/gpu-next/libplacebo: [ 57] #define LUMA_map _tex_coord_7_0_map
vo/gpu-next/libplacebo: [ 58] #define LUMA_size _tex_size_8_0
vo/gpu-next/libplacebo: [ 59] #define LUMA_pt _tex_pt_9_0
vo/gpu-next/libplacebo: [ 60] #define LUMA_off _offset_10_0
vo/gpu-next/libplacebo: [ 61] #define LUMA_mul _const_11_0
vo/gpu-next/libplacebo: [ 62] #define LUMA_rot mat2(1.0, 0.0, 0.0, 1.0)
vo/gpu-next/libplacebo: [ 63] #define LUMA_tex(pos) (_const_11_0 * vec4(texture(_hook_tex_6_0, pos)))
vo/gpu-next/libplacebo: [ 64] #define LUMA_texOff(off) (LUMA_tex(_tex_coord_7_0 + _tex_pt_9_0 * vec2(off)))
vo/gpu-next/libplacebo: [ 65] #define LUMA_gather(pos, c) (_const_11_0 * vec4(textureGather(_hook_tex_6_0, pos, c)))
vo/gpu-next/libplacebo: [ 66] #define frame _frame_12_0
vo/gpu-next/libplacebo: [ 67] #define random _random_13_0
vo/gpu-next/libplacebo: [ 68] #define input_size _input_size_14_0
vo/gpu-next/libplacebo: [ 69] #define target_size _target_size_15_0
vo/gpu-next/libplacebo: [ 70] #define tex_offset _tex_offset_16_0
vo/gpu-next/libplacebo: [ 71] vec4 _sub_17_0(vec4 color) {
vo/gpu-next/libplacebo: [ 72] // pl_shader_linearize
vo/gpu-next/libplacebo: [ 73] color.rgb = max(color.rgb, 0.0);
vo/gpu-next/libplacebo: [ 74] color.rgb = _const_1_1 * pow(color.rgb + vec3(_const_0_1), vec3(2.4));
vo/gpu-next/libplacebo: [ 75] return color;
vo/gpu-next/libplacebo: [ 76] }
vo/gpu-next/libplacebo: [ 77]
vo/gpu-next/libplacebo: [ 78] #define linearize _sub_17_0
vo/gpu-next/libplacebo: [ 79] vec4 _sub_18_0(vec4 color) {
vo/gpu-next/libplacebo: [ 80] // pl_shader_delinearize
vo/gpu-next/libplacebo: [ 81] color.rgb = max(color.rgb, 0.0);
vo/gpu-next/libplacebo: [ 82] color.rgb = pow(_const_1_2 * color.rgb, vec3(1.0/2.4)) - vec3(_const_0_2);
vo/gpu-next/libplacebo: [ 83] return color;
vo/gpu-next/libplacebo: [ 84] }
vo/gpu-next/libplacebo: [ 85]
vo/gpu-next/libplacebo: [ 86] #define delinearize _sub_18_0
vo/gpu-next/libplacebo: [ 87]
vo/gpu-next/libplacebo: [ 88] #define offset vec2(0)
vo/gpu-next/libplacebo: [ 89]
vo/gpu-next/libplacebo: [ 90] #define axis 1
vo/gpu-next/libplacebo: [ 91]
vo/gpu-next/libplacebo: [ 92] #define Kernel(x) dot(vec3(0.42659, -0.49656, 0.076849), cos(vec3(0, 1, 2) * acos(-1.) * (x + 1.)))
vo/gpu-next/libplacebo: [ 93]
vo/gpu-next/libplacebo: [ 94] vec4 hook() {
vo/gpu-next/libplacebo: [ 95] // Calculate bounds
vo/gpu-next/libplacebo: [ 96] float low = ceil((LUMA_pos - CHROMA_pt) * LUMA_size - offset - 0.5)[axis];
vo/gpu-next/libplacebo: [ 97] float high = floor((LUMA_pos + CHROMA_pt) * LUMA_size - offset - 0.5)[axis];
vo/gpu-next/libplacebo: [ 98]
vo/gpu-next/libplacebo: [ 99] float W = 0.0;
vo/gpu-next/libplacebo: [100] vec4 avg = vec4(0);
vo/gpu-next/libplacebo: [101] vec2 pos = LUMA_pos;
vo/gpu-next/libplacebo: [102]
vo/gpu-next/libplacebo: [103] for (float k = low; k <= high; k++) {
vo/gpu-next/libplacebo: [104] pos[axis] = LUMA_pt[axis] * (k - offset[axis] + 0.5);
vo/gpu-next/libplacebo: [105] float rel = (pos[axis] - LUMA_pos[axis])*CHROMA_size[axis];
vo/gpu-next/libplacebo: [106] float w = Kernel(rel);
vo/gpu-next/libplacebo: [107]
vo/gpu-next/libplacebo: [108] vec4 y = textureGrad(LUMA_raw, pos, vec2(0.0), vec2(0.0)).xxxx * LUMA_mul;
vo/gpu-next/libplacebo: [109] y.y *= y.y;
vo/gpu-next/libplacebo: [110] avg += w * y;
vo/gpu-next/libplacebo: [111] W += w;
vo/gpu-next/libplacebo: [112] }
vo/gpu-next/libplacebo: [113] avg /= W;
vo/gpu-next/libplacebo: [114] avg.y = abs(avg.y - avg.x * avg.x);
vo/gpu-next/libplacebo: [115] return avg;
vo/gpu-next/libplacebo: [116] }
vo/gpu-next/libplacebo: [117]
vo/gpu-next/libplacebo: [118] vec4 _main_20_0() {
vo/gpu-next/libplacebo: [119] vec4 color = hook();
vo/gpu-next/libplacebo: [120] return color;
vo/gpu-next/libplacebo: [121] }
vo/gpu-next/libplacebo: [122]
vo/gpu-next/libplacebo: [123] void main() {
vo/gpu-next/libplacebo: [124] out_color = _main_20_0();
vo/gpu-next/libplacebo: [125] }
vo/gpu-next/libplacebo: Failed creating render pass for dispatch
vo/gpu-next/libplacebo: Failed executing hook, disabling
vo/gpu-next/libplacebo: shaderc output:
vo/gpu-next/libplacebo: input:106: error: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression"
vo/gpu-next/libplacebo:
vo/gpu-next/libplacebo: shaderc compile status 'error' (1 errors, 0 warnings)
vo/gpu-next/libplacebo: vk_compile_glsl(gpu, tmp, GLSL_SHADER_FRAGMENT, params->glsl_shader, &frag): VK_ERROR_INITIALIZATION_FAILED (../src/vulkan/gpu_pass.c:511)
vo/gpu-next/libplacebo: vertex shader source:
vo/gpu-next/libplacebo: [ 1] #version 450
vo/gpu-next/libplacebo: [ 2] #extension GL_KHR_shader_subgroup_basic : enable
vo/gpu-next/libplacebo: [ 3] #extension GL_KHR_shader_subgroup_vote : enable
vo/gpu-next/libplacebo: [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
vo/gpu-next/libplacebo: [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
vo/gpu-next/libplacebo: [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
vo/gpu-next/libplacebo: [ 7] #extension GL_ARB_texture_gather : enable
vo/gpu-next/libplacebo: [ 8] layout(std430, push_constant) uniform PushC {
vo/gpu-next/libplacebo: [ 9] layout(offset=0) vec2 _tex_size_2_0;
vo/gpu-next/libplacebo: [ 10] layout(offset=8) vec2 _tex_pt_3_0;
vo/gpu-next/libplacebo: [ 11] layout(offset=16) vec2 _offset_4_0;
vo/gpu-next/libplacebo: [ 12] layout(offset=24) vec2 _tex_size_8_0;
vo/gpu-next/libplacebo: [ 13] layout(offset=32) vec2 _tex_pt_9_0;
vo/gpu-next/libplacebo: [ 14] layout(offset=40) vec2 _offset_10_0;
vo/gpu-next/libplacebo: [ 15] layout(offset=48) int _frame_12_0;
vo/gpu-next/libplacebo: [ 16] layout(offset=52) float _random_13_0;
vo/gpu-next/libplacebo: [ 17] layout(offset=56) vec2 _input_size_14_0;
vo/gpu-next/libplacebo: [ 18] layout(offset=64) vec2 _target_size_15_0;
vo/gpu-next/libplacebo: [ 19] layout(offset=72) vec2 _tex_offset_16_0;
vo/gpu-next/libplacebo: [ 20] };
vo/gpu-next/libplacebo: [ 21] layout(constant_id=0) const float _const_5_0 = 1;
vo/gpu-next/libplacebo: [ 22] layout(constant_id=1) const float _const_11_0 = 1;
vo/gpu-next/libplacebo: [ 23] layout(constant_id=2) const float _const_0_1 = 1;
vo/gpu-next/libplacebo: [ 24] layout(constant_id=3) const float _const_1_1 = 1;
vo/gpu-next/libplacebo: [ 25] layout(constant_id=4) const float _const_0_2 = 1;
vo/gpu-next/libplacebo: [ 26] layout(constant_id=5) const float _const_1_2 = 1;
vo/gpu-next/libplacebo: [ 27] layout(binding=0) uniform sampler2D _hook_tex_0_0;
vo/gpu-next/libplacebo: [ 28] layout(binding=1) uniform sampler2D _hook_tex_6_0;
vo/gpu-next/libplacebo: [ 29] layout(location=0) in vec2 _tex_coord_1_0_v;
vo/gpu-next/libplacebo: [ 30] layout(location=0) out vec2 _tex_coord_1_0;
vo/gpu-next/libplacebo: [ 31] layout(location=1) in vec2 _tex_coord_7_0_v;
vo/gpu-next/libplacebo: [ 32] layout(location=1) out vec2 _tex_coord_7_0;
vo/gpu-next/libplacebo: [ 33] layout(location=2) in vec2 _position_19_0_v;
vo/gpu-next/libplacebo: [ 34] void main() {
vo/gpu-next/libplacebo: [ 35] _tex_coord_1_0 = _tex_coord_1_0_v;
vo/gpu-next/libplacebo: [ 36] _tex_coord_7_0 = _tex_coord_7_0_v;
vo/gpu-next/libplacebo: [ 37] vec2 va_pos = _position_19_0_v;
vo/gpu-next/libplacebo: [ 38] gl_Position = vec4(va_pos, 0.0, 1.0);
vo/gpu-next/libplacebo: [ 39] }
vo/gpu-next/libplacebo: fragment shader source:
vo/gpu-next/libplacebo: [ 1] #version 450
vo/gpu-next/libplacebo: [ 2] #extension GL_KHR_shader_subgroup_basic : enable
vo/gpu-next/libplacebo: [ 3] #extension GL_KHR_shader_subgroup_vote : enable
vo/gpu-next/libplacebo: [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
vo/gpu-next/libplacebo: [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
vo/gpu-next/libplacebo: [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
vo/gpu-next/libplacebo: [ 7] #extension GL_ARB_texture_gather : enable
vo/gpu-next/libplacebo: [ 8] layout(std430, push_constant) uniform PushC {
vo/gpu-next/libplacebo: [ 9] layout(offset=0) vec2 _tex_size_2_0;
vo/gpu-next/libplacebo: [ 10] layout(offset=8) vec2 _tex_pt_3_0;
vo/gpu-next/libplacebo: [ 11] layout(offset=16) vec2 _offset_4_0;
vo/gpu-next/libplacebo: [ 12] layout(offset=24) vec2 _tex_size_8_0;
vo/gpu-next/libplacebo: [ 13] layout(offset=32) vec2 _tex_pt_9_0;
vo/gpu-next/libplacebo: [ 14] layout(offset=40) vec2 _offset_10_0;
vo/gpu-next/libplacebo: [ 15] layout(offset=48) int _frame_12_0;
vo/gpu-next/libplacebo: [ 16] layout(offset=52) float _random_13_0;
vo/gpu-next/libplacebo: [ 17] layout(offset=56) vec2 _input_size_14_0;
vo/gpu-next/libplacebo: [ 18] layout(offset=64) vec2 _target_size_15_0;
vo/gpu-next/libplacebo: [ 19] layout(offset=72) vec2 _tex_offset_16_0;
vo/gpu-next/libplacebo: [ 20] };
vo/gpu-next/libplacebo: [ 21] layout(constant_id=0) const float _const_5_0 = 1;
vo/gpu-next/libplacebo: [ 22] layout(constant_id=1) const float _const_11_0 = 1;
vo/gpu-next/libplacebo: [ 23] layout(constant_id=2) const float _const_0_1 = 1;
vo/gpu-next/libplacebo: [ 24] layout(constant_id=3) const float _const_1_1 = 1;
vo/gpu-next/libplacebo: [ 25] layout(constant_id=4) const float _const_0_2 = 1;
vo/gpu-next/libplacebo: [ 26] layout(constant_id=5) const float _const_1_2 = 1;
vo/gpu-next/libplacebo: [ 27] layout(binding=0) uniform sampler2D _hook_tex_0_0;
vo/gpu-next/libplacebo: [ 28] layout(binding=1) uniform sampler2D _hook_tex_6_0;
vo/gpu-next/libplacebo: [ 29] layout(location=0) in vec2 _tex_coord_1_0;
vo/gpu-next/libplacebo: [ 30] layout(location=1) in vec2 _tex_coord_7_0;
vo/gpu-next/libplacebo: [ 31] layout(location=0) out vec4 out_color;
vo/gpu-next/libplacebo: [ 32]
vo/gpu-next/libplacebo: [ 33] #define POSTKERNEL_raw _hook_tex_0_0
vo/gpu-next/libplacebo: [ 34] #define POSTKERNEL_pos _tex_coord_1_0
vo/gpu-next/libplacebo: [ 35] #define POSTKERNEL_map _tex_coord_1_0_map
vo/gpu-next/libplacebo: [ 36] #define POSTKERNEL_size _tex_size_2_0
vo/gpu-next/libplacebo: [ 37] #define POSTKERNEL_pt _tex_pt_3_0
vo/gpu-next/libplacebo: [ 38] #define POSTKERNEL_off _offset_4_0
vo/gpu-next/libplacebo: [ 39] #define POSTKERNEL_mul _const_5_0
vo/gpu-next/libplacebo: [ 40] #define POSTKERNEL_rot mat2(1.0, 0.0, 0.0, 1.0)
vo/gpu-next/libplacebo: [ 41] #define POSTKERNEL_tex(pos) (_const_5_0 * vec4(texture(_hook_tex_0_0, pos)))
vo/gpu-next/libplacebo: [ 42] #define POSTKERNEL_texOff(off) (POSTKERNEL_tex(_tex_coord_1_0 + _tex_pt_3_0 * vec2(off)))
vo/gpu-next/libplacebo: [ 43] #define POSTKERNEL_gather(pos, c) (_const_5_0 * vec4(textureGather(_hook_tex_0_0, pos, c)))
vo/gpu-next/libplacebo: [ 44] #define HOOKED_raw POSTKERNEL_raw
vo/gpu-next/libplacebo: [ 45] #define HOOKED_pos POSTKERNEL_pos
vo/gpu-next/libplacebo: [ 46] #define HOOKED_size POSTKERNEL_size
vo/gpu-next/libplacebo: [ 47] #define HOOKED_rot POSTKERNEL_rot
vo/gpu-next/libplacebo: [ 48] #define HOOKED_off POSTKERNEL_off
vo/gpu-next/libplacebo: [ 49] #define HOOKED_pt POSTKERNEL_pt
vo/gpu-next/libplacebo: [ 50] #define HOOKED_map POSTKERNEL_map
vo/gpu-next/libplacebo: [ 51] #define HOOKED_mul POSTKERNEL_mul
vo/gpu-next/libplacebo: [ 52] #define HOOKED_tex POSTKERNEL_tex
vo/gpu-next/libplacebo: [ 53] #define HOOKED_texOff POSTKERNEL_texOff
vo/gpu-next/libplacebo: [ 54] #define HOOKED_gather POSTKERNEL_gather
vo/gpu-next/libplacebo: [ 55] #define PREKERNEL_raw _hook_tex_6_0
vo/gpu-next/libplacebo: [ 56] #define PREKERNEL_pos _tex_coord_7_0
vo/gpu-next/libplacebo: [ 57] #define PREKERNEL_map _tex_coord_7_0_map
vo/gpu-next/libplacebo: [ 58] #define PREKERNEL_size _tex_size_8_0
vo/gpu-next/libplacebo: [ 59] #define PREKERNEL_pt _tex_pt_9_0
vo/gpu-next/libplacebo: [ 60] #define PREKERNEL_off _offset_10_0
vo/gpu-next/libplacebo: [ 61] #define PREKERNEL_mul _const_11_0
vo/gpu-next/libplacebo: [ 62] #define PREKERNEL_rot mat2(1.0, 0.0, 0.0, 1.0)
vo/gpu-next/libplacebo: [ 63] #define PREKERNEL_tex(pos) (_const_11_0 * vec4(texture(_hook_tex_6_0, pos)))
vo/gpu-next/libplacebo: [ 64] #define PREKERNEL_texOff(off) (PREKERNEL_tex(_tex_coord_7_0 + _tex_pt_9_0 * vec2(off)))
vo/gpu-next/libplacebo: [ 65] #define PREKERNEL_gather(pos, c) (_const_11_0 * vec4(textureGather(_hook_tex_6_0, pos, c)))
vo/gpu-next/libplacebo: [ 66] #define frame _frame_12_0
vo/gpu-next/libplacebo: [ 67] #define random _random_13_0
vo/gpu-next/libplacebo: [ 68] #define input_size _input_size_14_0
vo/gpu-next/libplacebo: [ 69] #define target_size _target_size_15_0
vo/gpu-next/libplacebo: [ 70] #define tex_offset _tex_offset_16_0
vo/gpu-next/libplacebo: [ 71] vec4 _sub_17_0(vec4 color) {
vo/gpu-next/libplacebo: [ 72] // pl_shader_linearize
vo/gpu-next/libplacebo: [ 73] color.rgb = max(color.rgb, 0.0);
vo/gpu-next/libplacebo: [ 74] color.rgb = _const_1_1 * pow(color.rgb + vec3(_const_0_1), vec3(2.4));
vo/gpu-next/libplacebo: [ 75] return color;
vo/gpu-next/libplacebo: [ 76] }
vo/gpu-next/libplacebo: [ 77]
vo/gpu-next/libplacebo: [ 78] #define linearize _sub_17_0
vo/gpu-next/libplacebo: [ 79] vec4 _sub_18_0(vec4 color) {
vo/gpu-next/libplacebo: [ 80] // pl_shader_delinearize
vo/gpu-next/libplacebo: [ 81] color.rgb = max(color.rgb, 0.0);
vo/gpu-next/libplacebo: [ 82] color.rgb = pow(_const_1_2 * color.rgb, vec3(1.0/2.4)) - vec3(_const_0_2);
vo/gpu-next/libplacebo: [ 83] return color;
vo/gpu-next/libplacebo: [ 84] }
vo/gpu-next/libplacebo: [ 85]
vo/gpu-next/libplacebo: [ 86] #define delinearize _sub_18_0
vo/gpu-next/libplacebo: [ 87]
vo/gpu-next/libplacebo: [ 88] #define axis 1
vo/gpu-next/libplacebo: [ 89]
vo/gpu-next/libplacebo: [ 90] #define offset vec2(0,0)
vo/gpu-next/libplacebo: [ 91]
vo/gpu-next/libplacebo: [ 92] #define MN(B,C,x) (x < 1.0 ? ((2.-1.5*B-(C))*x + (-3.+2.*B+C))*x*x + (1.-(B)/3.) : (((-(B)/6.-(C))*x + (B+5.*C))*x + (-2.*B-8.*C))*x+((4./3.)*B+4.*C))
vo/gpu-next/libplacebo: [ 93] #define Kernel(x) MN(.0, .5, abs(x))
vo/gpu-next/libplacebo: [ 94] #define taps 2.0
vo/gpu-next/libplacebo: [ 95]
vo/gpu-next/libplacebo: [ 96] vec4 hook() {
vo/gpu-next/libplacebo: [ 97] vec2 base = PREKERNEL_pt * (PREKERNEL_pos * input_size + tex_offset);
vo/gpu-next/libplacebo: [ 98]
vo/gpu-next/libplacebo: [ 99] float low = ceil((PREKERNEL_pos - taps*POSTKERNEL_pt) * input_size - offset + tex_offset - 0.5)[axis];
vo/gpu-next/libplacebo: [100] float high = floor((PREKERNEL_pos + taps*POSTKERNEL_pt) * input_size - offset + tex_offset - 0.5)[axis];
vo/gpu-next/libplacebo: [101]
vo/gpu-next/libplacebo: [102] float W = 0.0;
vo/gpu-next/libplacebo: [103] vec4 avg = vec4(0);
vo/gpu-next/libplacebo: [104] vec2 pos = base;
vo/gpu-next/libplacebo: [105]
vo/gpu-next/libplacebo: [106] for (float k = low; k <= high; k++) {
vo/gpu-next/libplacebo: [107] pos[axis] = PREKERNEL_pt[axis] * (k - offset[axis] + 0.5);
vo/gpu-next/libplacebo: [108] float rel = (pos[axis] - base[axis])*POSTKERNEL_size[axis];
vo/gpu-next/libplacebo: [109] float w = Kernel(rel);
vo/gpu-next/libplacebo: [110]
vo/gpu-next/libplacebo: [111] vec4 tex = textureLod(PREKERNEL_raw, pos, 0.0) * PREKERNEL_mul;
vo/gpu-next/libplacebo: [112] avg += w * tex * tex;
vo/gpu-next/libplacebo: [113] W += w;
vo/gpu-next/libplacebo: [114] }
vo/gpu-next/libplacebo: [115] avg /= W;
vo/gpu-next/libplacebo: [116]
vo/gpu-next/libplacebo: [117] return avg;
vo/gpu-next/libplacebo: [118] }
vo/gpu-next/libplacebo: [119]
vo/gpu-next/libplacebo: [120] vec4 _main_20_0() {
vo/gpu-next/libplacebo: [121] vec4 color = hook();
vo/gpu-next/libplacebo: [122] return color;
vo/gpu-next/libplacebo: [123] }
vo/gpu-next/libplacebo: [124]
vo/gpu-next/libplacebo: [125] void main() {
vo/gpu-next/libplacebo: [126] out_color = _main_20_0();
vo/gpu-next/libplacebo: [127] }
vo/gpu-next/libplacebo: Failed creating render pass for dispatch
vo/gpu-next/libplacebo: Failed executing hook, disabling
Edit: Trying to figure out what the issue is.
Solution for now is to not use gpu-api=vulkan
Edit: The purple is caused by cscale=ewa_lanczos
in my case. But this is not the cause of the issue.
I'll open an issue on libplacebo.
I'm trying older versions of shaderc to see if I can find a version where this issue doesn't happen.
Solution for now is to not use
gpu-api=vulkan
I can confirm that this works.
you posted earlier that
"the build 11671 still isn't available to the flathub repo"
Was this already fixed? If so, I have no problem to wait
you posted earlier that "the build 11671 still isn't available to the flathub repo" Was this already fixed? If so, I have no problem to wait
There was a similar issue to yours that was fixed (shaderc was too outdated which was causing purple screens with gpu-api=vulkan
), but yours is different.
Edit: I'm still testing older versions of shaderc. Will try older versions of libplacebo next.
The issue is SPIRV in Freedesktop 22.08 is outdated.
I'll submit a PR which builds SPIRV from source (based on commit 1a38500).
Thanks a lot, this fixed my issues :)