Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Greenish tint in the output #240

Open
Chipcraft opened this issue Jan 15, 2024 · 41 comments
Open

Greenish tint in the output #240

Chipcraft opened this issue Jan 15, 2024 · 41 comments

Comments

@Chipcraft
Copy link

Chipcraft commented Jan 15, 2024

Libplacebo filtering causes the output image to feature a greenish tint. In this case, libplacebo was used for cropping.
Otherwise the same workflow, using lavfilter crop-filter instead of libplacebo does not illustrate this behavior.

Input: Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9] // HDR10 BL

libplacebo (master) - 34e019b
ffmpeg (master) - FFmpeg/FFmpeg@34a47b9

Command w/ libplacebo:

ffmpeg -init_hw_device vulkan -i Input_BL.h265 -bsf:v hevc_metadata=chroma_sample_loc_type=2 -vf libplacebo=crop_w=3840:crop_h=1600:w=3840:h=1600 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 51 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le -loglevel verbose Placebo_Out.h265

Libplacebo

Command w/ lavfilter:

ffmpeg -init_hw_device vulkan -i Input_BL.h265 -bsf:v hevc_metadata=chroma_sample_loc_type=2 -vf crop=3840:1600:0:280 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 51 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le -loglevel verbose Lavfilter_Out.h265

Lavfilter

[libplacebo @ 000001aaf67ccc80] Initialized libplacebo v6.338.0-64-g34e019bf (API v342)
[graph 0 input from stream 0:0 @ 000001aaf67cdf00] w:3840 h:2160 pixfmt:yuv420p10le tb:1/1200000 fr:24000/1001 sar:1/1 csp:bt2020nc range:tv
[libplacebo @ 000001aaf67ccc80] Imported vulkan device properties:
[libplacebo @ 000001aaf67ccc80]     Device Name: Intel(R) Arc(TM) A380 Graphics
[libplacebo @ 000001aaf67ccc80]     Device ID: 8086:56a5
[libplacebo @ 000001aaf67ccc80]     Device UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 000001aaf67ccc80]     Driver version: 1953dc
[libplacebo @ 000001aaf67ccc80]     API version: 1.3.267
[libplacebo @ 000001aaf67ccc80] Restricting API version to 1.3.0... new version 1.3.0
[libplacebo @ 000001aaf67ccc80] Memory heaps supported by device:
[libplacebo @ 000001aaf67ccc80]     0: flags 0x1 size 5800M
[libplacebo @ 000001aaf67ccc80]     1: flags 0x0 size   31G
[libplacebo @ 000001aaf67ccc80]     2: flags 0x1 size  256M
[libplacebo @ 000001aaf67ccc80] Memory summary:     0 used     0 res     0 alloc, efficiency 100.00%, utilization 100.00%, max page:  362M
[libplacebo @ 000001aaf67ccc80] shaderc SPIR-V version 1.6 rev 1
[libplacebo @ 000001aaf67ccc80] Initialized SPIR-V compiler 'shaderc'
[libplacebo @ 000001aaf67ccc80] GPU information:
[libplacebo @ 000001aaf67ccc80]     GLSL version: 450 (vulkan)
[libplacebo @ 000001aaf67ccc80]       max_shmem_size:            32768
[libplacebo @ 000001aaf67ccc80]       max_group_threads:         1024
[libplacebo @ 000001aaf67ccc80]       max_group_size[0]:         1024
[libplacebo @ 000001aaf67ccc80]       max_group_size[1]:         1024
[libplacebo @ 000001aaf67ccc80]       max_group_size[2]:         64
[libplacebo @ 000001aaf67ccc80]       subgroup_size:             32
[libplacebo @ 000001aaf67ccc80]       min_gather_offset:         -32
[libplacebo @ 000001aaf67ccc80]       max_gather_offset:         31
[libplacebo @ 000001aaf67ccc80]     Limits:
[libplacebo @ 000001aaf67ccc80]       thread_safe:               1
[libplacebo @ 000001aaf67ccc80]       callbacks:                 1
[libplacebo @ 000001aaf67ccc80]       max_buf_size:              34292836352
[libplacebo @ 000001aaf67ccc80]       max_ubo_size:              134217724
[libplacebo @ 000001aaf67ccc80]       max_ssbo_size:             1073741820
[libplacebo @ 000001aaf67ccc80]       max_vbo_size:              6081740800
[libplacebo @ 000001aaf67ccc80]       max_mapped_size:           34292836352
[libplacebo @ 000001aaf67ccc80]       max_buffer_texels:         134217728
[libplacebo @ 000001aaf67ccc80]       align_host_ptr:            4096
[libplacebo @ 000001aaf67ccc80]       host_cached:               1
[libplacebo @ 000001aaf67ccc80]       max_tex_1d_dim:            16384
[libplacebo @ 000001aaf67ccc80]       max_tex_2d_dim:            16384
[libplacebo @ 000001aaf67ccc80]       max_tex_3d_dim:            2048
[libplacebo @ 000001aaf67ccc80]       blittable_1d_3d:           1
[libplacebo @ 000001aaf67ccc80]       buf_transfer:              1
[libplacebo @ 000001aaf67ccc80]       align_tex_xfer_pitch:      64
[libplacebo @ 000001aaf67ccc80]       align_tex_xfer_offset:     64
[libplacebo @ 000001aaf67ccc80]       max_variable_comps:        0
[libplacebo @ 000001aaf67ccc80]       max_constants:             18446744073709551615
[libplacebo @ 000001aaf67ccc80]       max_pushc_size:            256
[libplacebo @ 000001aaf67ccc80]       align_vertex_stride:       1
[libplacebo @ 000001aaf67ccc80]       max_dispatch[0]:           65536
[libplacebo @ 000001aaf67ccc80]       max_dispatch[1]:           65536
[libplacebo @ 000001aaf67ccc80]       max_dispatch[2]:           65536
[libplacebo @ 000001aaf67ccc80]       fragment_queues:           1
[libplacebo @ 000001aaf67ccc80]       compute_queues:            1
[libplacebo @ 000001aaf67ccc80]     External API interop:
[libplacebo @ 000001aaf67ccc80]       UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 000001aaf67ccc80]       PCI: 0000:00:00:0
[libplacebo @ 000001aaf67ccc80]       buf export caps: 0x2
[libplacebo @ 000001aaf67ccc80]       buf import caps: 0x12
[libplacebo @ 000001aaf67ccc80]       tex export caps: 0x2
[libplacebo @ 000001aaf67ccc80]       tex import caps: 0x12
[libplacebo @ 000001aaf67ccc80]       sync export caps: 0x2
[libplacebo @ 000001aaf67ccc80]       sync import caps: 0x0
[libplacebo @ 000001aaf67ccc80] Spent 76.898 ms translating SPIR-V
[libplacebo @ 000001aaf67ccc80] Spent 66.418 ms translating SPIR-V
[libplacebo @ 000001aaf67ccc80] Spent 18.677 ms generating shader LUT
[libplacebo @ 000001aaf67ccc80] Dithering to 10 bit depth
@Chipcraft
Copy link
Author

The phenomenon appears to be hardware agnostic, the same effect occurs when the Vulkan filter device is AMD Hawk Point instead of Intel DG2.

1705766192498

[libplacebo @ 0000022e5adba3c0] Initialized libplacebo v6.338.0-64-g34e019bf (API v342)
[graph 0 input from stream 0:0 @ 0000022e75c54ec0] w:3840 h:2160 pixfmt:yuv420p10le tb:1/1200000 fr:24000/1001 sar:1/1 csp:bt2020nc range:tv
[libplacebo @ 0000022e5adba3c0] Imported vulkan device properties:
[libplacebo @ 0000022e5adba3c0]     Device Name: Radeon 7
[libplacebo @ 0000022e5adba3c0]     Device ID: 1002:15bf
[libplacebo @ 0000022e5adba3c0]     Device UUID: 00:00:00:00:0D:00:00:00:00:00:00:00:00:00:00:00
[libplacebo @ 0000022e5adba3c0]     Driver version: 80011b
[libplacebo @ 0000022e5adba3c0]     API version: 1.3.262
[libplacebo @ 0000022e5adba3c0] Restricting API version to 1.3.0... new version 1.3.0
[libplacebo @ 0000022e5adba3c0] Memory heaps supported by device:
[libplacebo @ 0000022e5adba3c0]     0: flags 0x3 size  256M
[libplacebo @ 0000022e5adba3c0]     1: flags 0x0 size   15G
[libplacebo @ 0000022e5adba3c0]     2: flags 0x3 size  256M
[libplacebo @ 0000022e5adba3c0] Memory summary:     0 used     0 res     0 alloc, efficiency 100.00%, utilization 100.00%, max page:   64M
[libplacebo @ 0000022e5adba3c0] shaderc SPIR-V version 1.6 rev 1
[libplacebo @ 0000022e5adba3c0] Initialized SPIR-V compiler 'shaderc'
[libplacebo @ 0000022e5adba3c0] GPU information:
[libplacebo @ 0000022e5adba3c0]     GLSL version: 450 (vulkan)
[libplacebo @ 0000022e5adba3c0]       max_shmem_size:            32768
[libplacebo @ 0000022e5adba3c0]       max_group_threads:         1024
[libplacebo @ 0000022e5adba3c0]       max_group_size[0]:         1024
[libplacebo @ 0000022e5adba3c0]       max_group_size[1]:         1024
[libplacebo @ 0000022e5adba3c0]       max_group_size[2]:         1024
[libplacebo @ 0000022e5adba3c0]       subgroup_size:             64
[libplacebo @ 0000022e5adba3c0]       min_gather_offset:         -32
[libplacebo @ 0000022e5adba3c0]       max_gather_offset:         31
[libplacebo @ 0000022e5adba3c0]     Limits:
[libplacebo @ 0000022e5adba3c0]       thread_safe:               1
[libplacebo @ 0000022e5adba3c0]       callbacks:                 1
[libplacebo @ 0000022e5adba3c0]       max_buf_size:              16438525952
[libplacebo @ 0000022e5adba3c0]       max_ubo_size:              4294967295
[libplacebo @ 0000022e5adba3c0]       max_ssbo_size:             4294967295
[libplacebo @ 0000022e5adba3c0]       max_vbo_size:              268435456
[libplacebo @ 0000022e5adba3c0]       max_mapped_size:           16438525952
[libplacebo @ 0000022e5adba3c0]       max_buffer_texels:         4294967295
[libplacebo @ 0000022e5adba3c0]       align_host_ptr:            4096
[libplacebo @ 0000022e5adba3c0]       host_cached:               1
[libplacebo @ 0000022e5adba3c0]       max_tex_1d_dim:            16384
[libplacebo @ 0000022e5adba3c0]       max_tex_2d_dim:            16384
[libplacebo @ 0000022e5adba3c0]       max_tex_3d_dim:            8192
[libplacebo @ 0000022e5adba3c0]       blittable_1d_3d:           1
[libplacebo @ 0000022e5adba3c0]       buf_transfer:              1
[libplacebo @ 0000022e5adba3c0]       align_tex_xfer_pitch:      1
[libplacebo @ 0000022e5adba3c0]       align_tex_xfer_offset:     4
[libplacebo @ 0000022e5adba3c0]       max_variable_comps:        0
[libplacebo @ 0000022e5adba3c0]       max_constants:             18446744073709551615
[libplacebo @ 0000022e5adba3c0]       max_pushc_size:            128
[libplacebo @ 0000022e5adba3c0]       align_vertex_stride:       1
[libplacebo @ 0000022e5adba3c0]       max_dispatch[0]:           4294967295
[libplacebo @ 0000022e5adba3c0]       max_dispatch[1]:           65535
[libplacebo @ 0000022e5adba3c0]       max_dispatch[2]:           65535
[libplacebo @ 0000022e5adba3c0]       fragment_queues:           1
[libplacebo @ 0000022e5adba3c0]       compute_queues:            2
[libplacebo @ 0000022e5adba3c0]     External API interop:
[libplacebo @ 0000022e5adba3c0]       UUID: 00:00:00:00:0D:00:00:00:00:00:00:00:00:00:00:00
[libplacebo @ 0000022e5adba3c0]       PCI: 0000:0d:00:0
[libplacebo @ 0000022e5adba3c0]       buf export caps: 0x6
[libplacebo @ 0000022e5adba3c0]       buf import caps: 0x16
[libplacebo @ 0000022e5adba3c0]       tex export caps: 0x6
[libplacebo @ 0000022e5adba3c0]       tex import caps: 0x16
[libplacebo @ 0000022e5adba3c0]       sync export caps: 0x6
[libplacebo @ 0000022e5adba3c0]       sync import caps: 0x0
[libplacebo @ 0000022e5adba3c0] Spent 11.836 ms allocating slab
[libplacebo @ 0000022e5adba3c0] Spent 72.801 ms translating SPIR-V
[libplacebo @ 0000022e5adba3c0] Spent 31.582 ms allocating slab
[libplacebo @ 0000022e5adba3c0] Spent 41.416 ms translating SPIR-V
[libplacebo @ 0000022e5adba3c0] Spent 10.844 ms generating shader LUT
[libplacebo @ 0000022e5adba3c0] Dithering to 10 bit depth

@haasn
Copy link
Owner

haasn commented Feb 12, 2024

Does it happen for e.g. yuv420p, or just the 10-bit formats?

@Chipcraft
Copy link
Author

Chipcraft commented Feb 12, 2024

Need to verify it using other samples however, it does not seem to affect 420P or even the 420P10 as long as it is SDR content (bt. 709).

@Chipcraft
Copy link
Author

Chipcraft commented Feb 12, 2024

After testing on a different source, there is definitely a difference with 420P input as well.

Placebo (Crop):

https://www.nle-chipcraft.com/Git/CobraPLC.png

LAV (Crop):

https://www.nle-chipcraft.com/Git/CobraLAV.png

@mightyhuhn
Copy link

can you show me where the ycbcr -> RGB conversation code is there are already 3 colorspace i found and none had them in them AFAIK.

mpdn had a similar issue and i want to check a number.

@haasn
Copy link
Owner

haasn commented Feb 14, 2024

Sorry, I'm still trying to get around to this; I should have the time later this week.

You can find the colormatrix generation code here: https://github.com/haasn/libplacebo/blob/master/src/colorspace.c#L1412

With test cases here: https://github.com/haasn/libplacebo/blob/master/src/tests/colorspace.c

Probably the simplest place to start would be to add more unit tests with hard-coded reference matrices, e.g. https://github.com/haasn/libplacebo/blob/master/src/tests/colorspace.c#L201

But, I highly suspect that the actual color matrices are correct, and the issue comes from someplace else.

@haasn
Copy link
Owner

haasn commented Feb 14, 2024

It would be easier also if you could reproduce the problem on a static test pattern with known YCbCr values, such as smptebars

@mightyhuhn
Copy link

https://forum.doom9.org/showthread.php?p=1713449#post1713449
https://github.com/haasn/libplacebo/blob/master/src/colorspace.c#L1514C9-L1514C35
line 1514
cmid = 128 / 256. * scale;
if this is about this according to the paper at hand it should be 255 this is to high for me if this even references to that.
the other scale stuff is the usual 8 int mx 10 int max and 12 int max not 100000000.

i grab a ire test pattern later. the one i created on the fast has a general tint.
well what ever maybe i'm lucky.

@haasn
Copy link
Owner

haasn commented Feb 14, 2024

  • scale = (1LL << bit_depth) / ((1LL << bit_depth) - 1.0)
  • cmid = 128 / 256. * scale

So for 8-bit we have:

  • scale = 256 / 255
  • cmid = 128 / 256 * scale = 128 / 256 * 256 / 255 = 128 / 255

Edit: Nvm, I see; the issue is about 128 vs 127.5? But that is clearly not the case here, as we use 128, not 127.5.

@haasn
Copy link
Owner

haasn commented Feb 14, 2024

Furthermore, vo_gpu uses the exact same color matrices, so it shouldn't be a source of differences between vo_gpu and vo_gpu_next

@mightyhuhn
Copy link

mightyhuhn commented Feb 14, 2024

don't waste your time to explain yourself to me. i just remember someone very competent had a similar issue.

@Chipcraft
Copy link
Author

Chipcraft commented Feb 14, 2024

There seems to be a physical difference with the two pictures.

Used the minimum crop of 2 pix. to ensure that a crop of zero won't be optimized into a NOP.

LAV:

ffmpeg -init_hw_device vulkan -f lavfi -i smptebars=size=3840x2160 -vf crop=3840:2158:0:1 -frames:v 1 -pix_fmt rgb48be -compression_level 9 smpte-lav.png

smpte-lav

ffmpeg -init_hw_device vulkan -f lavfi -i smptehdbars=size=3840x2160 -vf crop=3840:2158:0:1 -frames:v 1 -pix_fmt rgb48be -compression_level 9 smptehd-lav.png

smptehd-lav

Placebo:

ffmpeg -init_hw_device vulkan -f lavfi -i smptebars=size=3840x2160 -vf libplacebo=crop_w=3840:crop_h=2158:crop_x=0:crop_y=1:w=3840:h=2158 -frames:v 1 -pix_fmt rgb48be -compression_level 9 smpte-plc.png

smpte-plc

ffmpeg -init_hw_device vulkan -f lavfi -i smptehdbars=size=3840x2160 -vf libplacebo=crop_w=3840:crop_h=2158:crop_x=0:crop_y=1:w=3840:h=2158 -frames:v 1 -pix_fmt rgb48be -compression_level 9 smptehd-plc.png

smptehd-plc

@haasn
Copy link
Owner

haasn commented Feb 15, 2024

My own testing:

Generation

  • ffmpeg -sws_flags +accurate_rnd+bitexact -f lavfi -i smptebars -vframes 1 -pix_fmt rgb48be smptebars-swscale.png
  • ffmpeg -f lavfi -i smptebars -vf zscale,format=gbrap16 -vframes 1 -pix_fmt rgb48be smptebars-zscale.png
  • ffmpeg -init_hw_device vulkan -f lavfi -i smptebars -vf libplacebo,format=rgba64 -vframes 1 -pix_fmt rgb48be smptebars-placebo.png

Exact bit values

  • swscale: (48830, 48830, 0)
  • zscale: (49433, 49222, 142)
  • libplacebo: (49409, 49236, 134)

So, zscale and libplacebo are a near match here (the difference is about 2^-12, which is below the human perceptibility threshold), and swscale is significantly different from both.

Reference computation

Using the exact numbers taken from the BT.601 specification, courtesy of https://en.wikipedia.org/wiki/YCbCr#ITU-R_BT.601_conversion, and plugging in the actual 8-bit source YCbCr value (162, 44, 142), I get:

y = 162
cb = 44
cr = 142

(rd, gd, bd) = (yrgb + crr, yrgb - 0.114/0.587 * cbb - 0.299/0.587 * crr, yrgb + cbb)
    where yrgb = 255/219 * (y - 16)
          crr  = 255/224 * 1.402 * (cr - 128)
          cbb  = 255/224 * 1.772 * (cb - 128)
  • Rd = 192.344375
  • Gd = 191.526485
  • Bd = 0.5525

Evaluation

This is the MSE of each approach, versus the reference computation:

  • swscale: 4.1684007597205426e-5
  • zscale: 2.6371194531018245e-11
  • libplacebo: 6.238821623324919e-8

So we can see that swscale is the least accurate here. Intuitively, this is what we should expect - swscale uses exclusively 16-bit integer math, libplacebo uses 32-bit floating point math, and zscale probably uses a mix of 64-bit float math (for matrices) and 16-bit lookup tables.

Conclusion

I could find no bug in libplacebo when comparing the output of smptebars directly on 8-bit input values. So I suspect that the issue in the original post, which is far more dramatic than that, comes from someplace else. At the very least, this demonstrates that the color matrices in libplacebo are correct.

@haasn
Copy link
Owner

haasn commented Feb 15, 2024

I tried repeating the same test with yuv420p10 input instead of yuv420p, just adding an extra -vf format=yuv420p10 to the beginning of the filter chain for each:

  • swscale = (49242, 49032, 144)
  • zscale = (49433, 49222, 142)
  • placebo = (49432, 49223, 142)

Same pattern - swscale differs (in this case by about 2^-8, a noticeable amount), zscale and libplacebo match.

@haasn
Copy link
Owner

haasn commented Feb 15, 2024

Edit: My invocation was correct, I forgot to specify h=238, so I was doing scaling. This was going through the full linearization/sigmoidization path, which has limited precision. Disabling sigmoidization, or fixing the height expression, makes it instead output the far more reasonable value 11253.

Trying to recreate your original sample exactly:

  • ffmpeg -v verbose -sws_flags +full_chroma_int+full_chroma_inp+accurate_rnd+bitexact -f lavfi -i smptebars -vf setparams=colorspace=bt2020nc:color_primaries=bt2020,crop=320:238:0:1,format=p010le -vframes 1 -pix_fmt yuv420p10 -strict -1 lavfi-crop.y4m
  • ffmpeg -init_hw_device vulkan -v verbose -sws_flags +full_chroma_int+full_chroma_inp+accurate_rnd+bitexact -f lavfi -i smptebars -vf setparams=colorspace=bt2020nc:color_primaries=bt2020,libplacebo=crop_h=238:crop_y=1,format=p010le -vframes 1 -pix_fmt yuv420p10 -strict -1 placebo-crop.y4m

Extracting Y/Cb/Cr planes from each:

  • for P in y u v; ffmpeg -i lavfi-crop.y4m -vf extractplanes=$P lavfi-$P.png

I get these raw Y/Cb/Cr values:

  • lavfi: (41600, 11264, 36480)
  • placebo: (41527, 12372, 36189)

Since none of the above operations should have modified the actual underlying YCbCr input value, we can use the original input as reference, which corresponds to 16-bit values (41472, 11264, 36352)

This gives us an MSE of:

  • lavfi: 2.543209122407611e-6
  • placebo: 9.757904097961266e-5

So something fishy is definitely going on here. I will try eliminating parameters until we identify the root cause.

@haasn
Copy link
Owner

haasn commented Feb 15, 2024

@Chipcraft can you share more details about the original input file? Maybe a log with -v debug would be more helpful.

@Chipcraft
Copy link
Author

Chipcraft commented Feb 15, 2024

ffmpeg -init_hw_device vulkan -i Input_BL.h265 -bsf:v hevc_metadata=chroma_sample_loc_type=2 -vf libplacebo=crop_w=3840:crop_h=1600:w=3840:h=1600 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 51 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le -loglevel -frames:v 1 verbose Placebo_Out.h265

Debug log on the input
ffmpeg version N-113620-g3be80ce299 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev4, Built by MSYS2 project)
  configuration: --enable-libvpl --enable-nvenc --enable-libdav1d --enable-libaom --enable-libx264 --enable-libx265 --enable-libfdk_aac --enable-libopus --enable-libplacebo --enable-libvmaf --enable-libxml2 --enable-openssl --enable-gpl --enable-nonfree --cpu=x86-64-v3 --extra-libs=-lstdc++
  libavutil      58. 36.101 / 58. 36.101
  libavcodec     60. 39.100 / 60. 39.100
  libavformat    60. 20.100 / 60. 20.100
  libavdevice    60.  4.100 / 60.  4.100
  libavfilter     9. 17.100 /  9. 17.100
  libswscale      7.  6.100 /  7.  6.100
  libswresample   4. 13.100 /  4. 13.100
  libpostproc    57.  4.100 / 57.  4.100
Splitting the commandline.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'vulkan'.
Reading option '-i' ... matched as output url with argument 'Input_BL.h265'.
Reading option '-bsf:v' ... matched as option 'bsf' (A comma-separated list of bitstream filters) with argument 'hevc_metadata=chroma_sample_loc_type=2'.
Reading option '-vf' ... matched as option 'vf' (alias for -filter:v (apply filters to video streams)) with argument 'libplacebo=crop_w=3840:crop_h=1600:w=3840:h=1600'.
Reading option '-c:v' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'hevc_qsv'.
Reading option '-preset' ... matched as AVOption 'preset' with argument 'veryslow'.
Reading option '-scenario' ... matched as AVOption 'scenario' with argument 'archive'.
Reading option '-profile:v' ... matched as option 'profile' (set profile) with argument 'main10'.
Reading option '-level:v' ... matched as AVOption 'level:v' with argument '51'.
Reading option '-tier' ... matched as AVOption 'tier' with argument 'high'.
Reading option '-global_quality' ... matched as AVOption 'global_quality' with argument '14'.
Reading option '-flags' ... matched as AVOption 'flags' with argument '+cgop'.
Reading option '-g' ... matched as AVOption 'g' with argument '120'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'p010le'.
Reading option '-frames:v' ... matched as option 'frames' (set the number of frames to output) with argument '1'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option 'Placebo_Out.h265' ... matched as output url.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option init_hw_device (initialise hardware device) with argument vulkan.
[AVHWDeviceContext @ 000001e10284ebc0] Supported validation layers:
[AVHWDeviceContext @ 000001e10284ebc0] 	VK_LAYER_VALVE_steam_overlay
[AVHWDeviceContext @ 000001e10284ebc0] 	VK_LAYER_VALVE_steam_fossilize
[AVHWDeviceContext @ 000001e10284ebc0] Using instance extension VK_KHR_portability_enumeration
[AVHWDeviceContext @ 000001e10284ebc0] GPU listing:
[AVHWDeviceContext @ 000001e10284ebc0]     0: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 000001e10284ebc0] Device 0 selected: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 000001e10284ebc0] Queue families:
[AVHWDeviceContext @ 000001e10284ebc0]     0: graphics compute transfer sparse (queues: 1)
[AVHWDeviceContext @ 000001e10284ebc0]     1: compute (queues: 1)
[AVHWDeviceContext @ 000001e10284ebc0]     2: transfer (queues: 1)
[AVHWDeviceContext @ 000001e10284ebc0]     3: decode (queues: 2)
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_push_descriptor
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_sampler_ycbcr_conversion
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_EXT_descriptor_buffer
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_EXT_shader_atomic_float
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_EXT_external_memory_host
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_external_memory_win32
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_external_semaphore_win32
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_video_queue
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_video_decode_queue
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_video_decode_h264
[AVHWDeviceContext @ 000001e10284ebc0] Using device extension VK_KHR_video_decode_h265
[AVHWDeviceContext @ 000001e10284ebc0] Using device: Intel(R) Arc(TM) A380 Graphics
[AVHWDeviceContext @ 000001e10284ebc0] Alignments:
[AVHWDeviceContext @ 000001e10284ebc0]     optimalBufferCopyRowPitchAlignment: 64
[AVHWDeviceContext @ 000001e10284ebc0]     minMemoryMapAlignment:              64
[AVHWDeviceContext @ 000001e10284ebc0]     nonCoherentAtomSize:                1
[AVHWDeviceContext @ 000001e10284ebc0]     minImportedHostPointerAlignment:    4096
[AVHWDeviceContext @ 000001e10284ebc0] Using queue family 0 (queues: 1) for graphics
[AVHWDeviceContext @ 000001e10284ebc0] Using queue family 1 (queues: 1) for compute
[AVHWDeviceContext @ 000001e10284ebc0] Using queue family 2 (queues: 1) for transfers
[AVHWDeviceContext @ 000001e10284ebc0] Using queue family 3 (queues: 2) for decode
Applying option loglevel (set logging level) with argument debug.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url Input_BL.h265.
Successfully parsed a group of options.
Opening an input file: Input_BL.h265.
[AVFormatContext @ 000001e100eee340] Opening 'Input_BL.h265' for reading
[file @ 000001e100eee780] Setting default whitelist 'file,crypto,data'
[hevc @ 000001e100eee340] Format hevc probed with size=2048 and score=51
[hevc @ 000001e100eee340] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[hevc @ 000001e102861880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[hevc @ 000001e102861880] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] Decoding VPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding SPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding VUI
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e102861880] Skipped PREFIX SEI 0
[hevc @ 000001e102861880] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e102861880] Skipped PREFIX SEI 6
[hevc @ 000001e102861880] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e102861880] Decoding VPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding SPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding VUI
[hevc @ 000001e102861880] Decoding PPS
[extract_extradata @ 000001e10284fb80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[extract_extradata @ 000001e10284fb80] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[extract_extradata @ 000001e10284fb80] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[extract_extradata @ 000001e10284fb80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[extract_extradata @ 000001e10284fb80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[extract_extradata @ 000001e10284fb80] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[extract_extradata @ 000001e10284fb80] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[extract_extradata @ 000001e10284fb80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[extract_extradata @ 000001e10284fb80] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[hevc @ 000001e102861880] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] Decoding VPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding SPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding VUI
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e102861880] Skipped PREFIX SEI 0
[hevc @ 000001e102861880] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e102861880] Skipped PREFIX SEI 6
[hevc @ 000001e102861880] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e102861880] Decoding VPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding SPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding VUI
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Format yuv420p10le chosen by get_format().
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e102861880] Decoded frame with POC 0.
[hevc @ 000001e102861880] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] Decoding VPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding SPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding VUI
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding VPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding SPS
[hevc @ 000001e102861880] Main 10 profile bitstream
[hevc @ 000001e102861880] Decoding VUI
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding SEI
[hevc @ 000001e102861880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding SEI
[hevc @ 000001e102861880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding SEI
[hevc @ 000001e102861880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding SEI
[hevc @ 000001e102861880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e102861880] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e102861880] Decoding PPS
[hevc @ 000001e102861880] Decoding SEI
[hevc @ 000001e100eee340] Probe buffer size limit of 5000000 bytes reached
[hevc @ 000001e100eee340] Stream #0: not enough frames to estimate rate; consider increasing probesize
[hevc @ 000001e100eee340] After avformat_find_stream_info() pos: 5131264 bytes read:5144576 seeks:0 frames:6
Input #0, hevc, from 'Input_BL.h265':
  Duration: N/A, bitrate: N/A
  Stream #0:0, 6, 1/1200000: Video: hevc (Main 10), 1 reference frame, yuv420p10le(tv, bt2020nc/bt2020/smpte2084, topleft), 3840x2160 (0x0) [SAR 1:1 DAR 16:9], 0/1, 25 fps, 23.98 tbr, 1200k tbn
Successfully opened the file.
Parsing a group of options: output url Placebo_Out.h265.
Applying option bsf:v (A comma-separated list of bitstream filters) with argument hevc_metadata=chroma_sample_loc_type=2.
Applying option vf (alias for -filter:v (apply filters to video streams)) with argument libplacebo=crop_w=3840:crop_h=1600:w=3840:h=1600.
Applying option c:v (select encoder/decoder ('copy' to copy stream without reencoding)) with argument hevc_qsv.
Applying option profile:v (set profile) with argument main10.
Applying option pix_fmt (set pixel format) with argument p010le.
Applying option frames:v (set the number of frames to output) with argument 1.
Successfully parsed a group of options.
Opening an output file: Placebo_Out.h265.
[out#0/hevc @ 000001e100ee7a00] No explicit maps, mapping streams automatically...
[vost#0:0/hevc_qsv @ 000001e109731d00] Created video stream from input stream 0:0
[h265_metadata_bsf @ 000001e10b69bf40] Setting 'chroma_sample_loc_type' to value '2'
[AVFilterGraph @ 000001e100eed400] Setting 'crop_w' to value '3840'
[AVFilterGraph @ 000001e100eed400] Setting 'crop_h' to value '1600'
[AVFilterGraph @ 000001e100eed400] Setting 'w' to value '3840'
[AVFilterGraph @ 000001e100eed400] Setting 'h' to value '1600'
[libplacebo @ 000001e109818140] Initialized libplacebo v6.338.0-77-g3ba18d5d (API v342)
detected 64 logical cores
[hevc @ 000001e10981b3c0] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] Decoding VPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e10981b3c0] Decoding SPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e10981b3c0] Decoding VUI
[hevc @ 000001e10981b3c0] Decoding PPS
[hevc @ 000001e10981b3c0] Decoding VPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e10981b3c0] Decoding SPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e10981b3c0] Decoding VUI
[hevc @ 000001e10981b3c0] Decoding PPS
[file @ 000001e109716880] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> hevc (hevc_qsv))
[vost#0:0/hevc_qsv @ 000001e109731d00] Starting thread...
[vf#0:0 @ 000001e10b69c040] Starting thread...
[vist#0:0/hevc @ 000001e102852ec0] [dec:hevc @ 000001e1097bf240] Starting thread...
[in#0/hevc @ 000001e100ee9840] Starting thread...
Press [q] to stop, [?] for help
[hevc @ 000001e10981b3c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 2 times
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 2 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e10981b3c0] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e10981b3c0] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e10981b3c0] Decoding VPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e10981b3c0] Decoding SPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e10981b3c0] Decoding VUI
[hevc @ 000001e10981b3c0] Decoding PPS
[hevc @ 000001e10981b3c0] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e10981b3c0] Skipped PREFIX SEI 0
[hevc @ 000001e10981b3c0] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e10981b3c0] Skipped PREFIX SEI 6
[hevc @ 000001e10981b3c0] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e10981b3c0] Decoding VPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e10981b3c0] Decoding SPS
[hevc @ 000001e10981b3c0] Main 10 profile bitstream
[hevc @ 000001e10981b3c0] Decoding VUI
[hevc @ 000001e10981b3c0] Decoding PPS
[hevc @ 000001e10981b3c0] Format yuv420p10le chosen by get_format().
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1096459c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e1096459c0] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1096459c0] Output frame with POC 0.
[hevc @ 000001e1096f6a80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096f6a80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096f6a80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096f6a80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 2 times
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096f6a80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e1096f6a80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e1096f6a80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc @ 000001e1096f6a80] Decoding PPS
[hevc @ 000001e1096f6a80] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1096f6a80] Output frame with POC 1.
[hevc @ 000001e10981fc00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10981fc00] Decoding PPS
[hevc @ 000001e10981fc00] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10981fc00] Output frame with POC 2.
[hevc @ 000001e1099869c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 2 times
[hevc @ 000001e1099869c0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 3 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e1099869c0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e1099869c0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 3 times
[hevc @ 000001e1099869c0] Decoding PPS
[hevc @ 000001e1099869c0] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1099869c0] Output frame with POC 3.
[hevc @ 000001e109a37a80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109a37a80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109a37a80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109a37a80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109a37a80] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109a37a80] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e109a37a80] Output frame with POC 4.
[hevc @ 000001e109ae8b80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109ae8b80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109ae8b80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109ae8b80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109ae8b80] Decoding PPS
[hevc @ 000001e109ae8b80] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e109ae8b80] Output frame with POC 5.
[hevc @ 000001e10978db40] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e10978db40] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e10978db40] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10978db40] Output frame with POC 6.
[hevc @ 000001e10b7fe9c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b7fe9c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b7fe9c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b7fe9c0] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10b7fe9c0] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc @ 000001e10b7fe9c0] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10b7fe9c0] Output frame with POC 7.
[hevc @ 000001e10b8afa80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b8afa80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b8afa80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b8afa80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10b8afa80] Decoding PPS
[hevc @ 000001e10b8afa80] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[hevc @ 000001e109b8eb00] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 21(CRA_NUT), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding VPS
[hevc @ 000001e109b8eb00] Main 10 profile bitstream
[hevc @ 000001e109b8eb00] Decoding SPS
[hevc @ 000001e109b8eb00] Main 10 profile bitstream
[hevc @ 000001e109b8eb00] Decoding VUI
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] Skipped PREFIX SEI 0
[hevc @ 000001e109b8eb00] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] Skipped PREFIX SEI 6
[hevc @ 000001e109b8eb00] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] Decoding VPS
[hevc @ 000001e109b8eb00] Main 10 profile bitstream
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10b8afa80] Output frame with POC 8.
[hevc @ 000001e10b960880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b960880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b960880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b960880] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] Decoding SPS
[hevc @ 000001e109b8eb00] Main 10 profile bitstream
[hevc @ 000001e10b960880] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] Decoding VUI
[hevc @ 000001e10b960880] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e10b960880] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 4 times
[hevc @ 000001e10b960880] Decoding PPS
[hevc @ 000001e10b960880] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 8(RASL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10b960880] Output frame with POC 9.
[hevc @ 000001e10ba11680] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10ba11680] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10ba11680] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10ba11680] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10ba11680] Decoding PPS
[hevc @ 000001e10ba11680] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 8(RASL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10ba11680] Output frame with POC 10.
[hevc @ 000001e109730d00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109730d00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109730d00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109730d00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109730d00] Decoding PPS
[hevc @ 000001e109730d00] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e109730d00] Output frame with POC 11.
[hevc @ 000001e109731100] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109731100] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109731100] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109731100] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 4 times
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109731100] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109731100] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109731100] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc @ 000001e109731100] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 2 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e109731100] Output frame with POC 12.
[hevc @ 000001e109812bc0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109812bc0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109812bc0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109812bc0] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109812bc0] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109812bc0] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e109812bc0] Output frame with POC 13.
[hevc @ 000001e1098133c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1098133c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1098133c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1098133c0] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e1098133c0] Decoding PPS
[hevc @ 000001e1098133c0] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1098133c0] Output frame with POC 14.
[hevc @ 000001e10981b3c0] Decoded frame with POC 0.
[hevc @ 000001e10981b3c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981b3c0] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10981b3c0] Decoding PPS
[hevc @ 000001e10981b3c0] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10981b3c0] Output frame with POC 15.
[hevc @ 000001e1096459c0] Decoded frame with POC 3.
[AVFilterGraph @ 000001e124aa1e40] Setting 'crop_w' to value '3840'
[AVFilterGraph @ 000001e124aa1e40] Setting 'crop_h' to value '1600'
[AVFilterGraph @ 000001e124aa1e40] Setting 'w' to value '3840'
[AVFilterGraph @ 000001e124aa1e40] Setting 'h' to value '1600'
[hevc @ 000001e1096459c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e1096459c0] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096459c0] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[libplacebo @ 000001e109703580] Initialized libplacebo v6.338.0-77-g3ba18d5d (API v342)
[graph 0 input from stream 0:0 @ 000001e116a1ef00] Setting 'video_size' to value '3840x2160'
[graph 0 input from stream 0:0 @ 000001e116a1ef00] Setting 'pix_fmt' to value '62'
[graph 0 input from stream 0:0 @ 000001e116a1ef00] Setting 'time_base' to value '1/1200000'
[graph 0 input from stream 0:0 @ 000001e116a1ef00] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 000001e116a1ef00] Setting 'colorspace' to value '9'
[graph 0 input from stream 0:0 @ 000001e116a1ef00] Setting 'range' to value '1'
[graph 0 input from stream 0:0 @ 000001e116a1ef00] Setting 'frame_rate' to value '24000/1001'
[graph 0 input from stream 0:0 @ 000001e116a1ef00] w:3840 h:2160 pixfmt:yuv420p10le tb:1/1200000 fr:24000/1001 sar:1/1 csp:bt2020nc range:tv
[format @ 000001e10cc32bc0] Setting 'pix_fmts' to value 'p010le'
[libplacebo @ 000001e109703580] Imported vulkan device properties:
[libplacebo @ 000001e109703580]     Device Name: Intel(R) Arc(TM) A380 Graphics
[libplacebo @ 000001e109703580]     Device ID: 8086:56a5
[libplacebo @ 000001e109703580]     Device UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 000001e109703580]     Driver version: 19544a
[libplacebo @ 000001e109703580]     API version: 1.3.271
[libplacebo @ 000001e109703580] Restricting API version to 1.3.0... new version 1.3.0
[libplacebo @ 000001e109703580] Memory heaps supported by device:
[libplacebo @ 000001e109703580]     0: flags 0x1 size 5800M
[libplacebo @ 000001e109703580]     1: flags 0x0 size   31G
[libplacebo @ 000001e109703580]     2: flags 0x1 size  256M
[libplacebo @ 000001e109703580] Memory types supported by device:
[libplacebo @ 000001e109703580]     0: flags 0x1 heap 0
[libplacebo @ 000001e109703580]     1: flags 0x6 heap 1
[libplacebo @ 000001e109703580]     2: flags 0xe heap 1
[libplacebo @ 000001e109703580]     3: flags 0x7 heap 2
[libplacebo @ 000001e109703580] Memory summary:     0 used     0 res     0 alloc, efficiency 100.00%, utilization 100.00%, max page:  362M
[libplacebo @ 000001e109703580] shaderc SPIR-V version 1.6 rev 1
[libplacebo @ 000001e109703580] Initialized SPIR-V compiler 'shaderc'
[libplacebo @ 000001e109703580] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT (0x10) is not exportable
[libplacebo @ 000001e109703580] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) is not exportable
[libplacebo @ 000001e109703580] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) is not importable
[libplacebo @ 000001e109703580] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT (0x10) is not exportable
[libplacebo @ 000001e109703580] Tex caps for VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) unsupported: VK_ERROR_FORMAT_NOT_SUPPORTED
    Last message repeated 1 times
[libplacebo @ 000001e109703580] Minimum texel alignment: 48
[libplacebo @ 000001e109703580] GPU information:
[libplacebo @ 000001e109703580]     GLSL version: 450 (vulkan)
[libplacebo @ 000001e109703580]       max_shmem_size:            32768
[libplacebo @ 000001e109703580]       max_group_threads:         1024
[libplacebo @ 000001e109703580]       max_group_size[0]:         1024
[libplacebo @ 000001e109703580]       max_group_size[1]:         1024
[libplacebo @ 000001e109703580]       max_group_size[2]:         64
[libplacebo @ 000001e109703580]       subgroup_size:             32
[libplacebo @ 000001e109703580]       min_gather_offset:         -32
[libplacebo @ 000001e109703580]       max_gather_offset:         31
[libplacebo @ 000001e109703580]     Limits:
[libplacebo @ 000001e109703580]       thread_safe:               1
[libplacebo @ 000001e109703580]       callbacks:                 1
[libplacebo @ 000001e109703580]       max_buf_size:              34290857984
[libplacebo @ 000001e109703580]       max_ubo_size:              134217724
[libplacebo @ 000001e109703580]       max_ssbo_size:             1073741820
[libplacebo @ 000001e109703580]       max_vbo_size:              6081740800
[libplacebo @ 000001e109703580]       max_mapped_size:           34290857984
[libplacebo @ 000001e109703580]       max_buffer_texels:         134217728
[libplacebo @ 000001e109703580]       align_host_ptr:            4096
[libplacebo @ 000001e109703580]       host_cached:               1
[libplacebo @ 000001e109703580]       max_tex_1d_dim:            16384
[libplacebo @ 000001e109703580]       max_tex_2d_dim:            16384
[libplacebo @ 000001e109703580]       max_tex_3d_dim:            2048
[libplacebo @ 000001e109703580]       blittable_1d_3d:           1
[libplacebo @ 000001e109703580]       buf_transfer:              1
[libplacebo @ 000001e109703580]       align_tex_xfer_pitch:      64
[libplacebo @ 000001e109703580]       align_tex_xfer_offset:     64
[libplacebo @ 000001e109703580]       max_variable_comps:        0
[libplacebo @ 000001e109703580]       max_constants:             18446744073709551615
[libplacebo @ 000001e109703580]       max_pushc_size:            256
[libplacebo @ 000001e109703580]       align_vertex_stride:       1
[libplacebo @ 000001e109703580]       max_dispatch[0]:           65536
[libplacebo @ 000001e109703580]       max_dispatch[1]:           65536
[libplacebo @ 000001e109703580]       max_dispatch[2]:           65536
[libplacebo @ 000001e109703580]       fragment_queues:           1
[libplacebo @ 000001e109703580]       compute_queues:            1
[libplacebo @ 000001e109703580]     External API interop:
[libplacebo @ 000001e109703580]       UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 000001e109703580]       PCI: 0000:00:00:0
[libplacebo @ 000001e109703580]       buf export caps: 0x2
[libplacebo @ 000001e109703580]       buf import caps: 0x12
[libplacebo @ 000001e109703580]       tex export caps: 0x2
[libplacebo @ 000001e109703580]       tex import caps: 0x12
[libplacebo @ 000001e109703580]       sync export caps: 0x2
[libplacebo @ 000001e109703580]       sync import caps: 0x0
[libplacebo @ 000001e109703580] GPU texture formats:
[libplacebo @ 000001e109703580]     NAME                 TYPE   SIZE COMP CAPS         EMU DEPTH         HOST_BITS     GLSL_TYPE  GLSL_FMT   FOURCC
[libplacebo @ 000001e109703580]     r8                   UNORM  1    R    SsLRbBVutHWG n   {8  0  0  0 } {8  0  0  0 } float      r8         R8    
[libplacebo @ 000001e109703580]     r8s                  SNORM  1    R    SsLRbBVutHWG n   {8  0  0  0 } {8  0  0  0 } float      r8_snorm         
[libplacebo @ 000001e109703580]     rg8                  UNORM  2    RG   SsLRbBVutHWG n   {8  8  0  0 } {8  8  0  0 } vec2       rg8        GR88  
[libplacebo @ 000001e109703580]     rg8s                 SNORM  2    RG   SsLRbBVutHWG n   {8  8  0  0 } {8  8  0  0 } vec2       rg8_snorm        
[libplacebo @ 000001e109703580]     rgba8                UNORM  4    RGBA SsLRbBVutHWG n   {8  8  8  8 } {8  8  8  8 } vec4       rgba8      AB24  
[libplacebo @ 000001e109703580]     rgba8s               SNORM  4    RGBA SsLRbBVutHWG n   {8  8  8  8 } {8  8  8  8 } vec4       rgba8_snorm       
[libplacebo @ 000001e109703580]     bgra8                UNORM  4    BGRA SsLRbBVutHWG n   {8  8  8  8 } {8  8  8  8 } vec4       rgba8      AR24  
[libplacebo @ 000001e109703580]     rgb10a2              UNORM  4    RGBA SsLRbBVutHWG n   {10 10 10 2 } {10 10 10 2 } vec4       rgb10_a2   AB30  
[libplacebo @ 000001e109703580]     bgr10a2              UNORM  4    BGRA SsLRbBVutHWG n   {10 10 10 2 } {10 10 10 2 } vec4       rgb10_a2   AR30  
[libplacebo @ 000001e109703580]     r16                  UNORM  2    R    SsLRbBVutHWG n   {16 0  0  0 } {16 0  0  0 } float      r16        R16   
[libplacebo @ 000001e109703580]     r16hf                FLOAT  2    R    SsLRbBVutHWG n   {16 0  0  0 } {16 0  0  0 } float      r16f             
[libplacebo @ 000001e109703580]     r16s                 SNORM  2    R    SsLRbBVutHWG n   {16 0  0  0 } {16 0  0  0 } float      r16_snorm        
[libplacebo @ 000001e109703580]     rg16                 UNORM  4    RG   SsLRbBVutHWG n   {16 16 0  0 } {16 16 0  0 } vec2       rg16       GR32  
[libplacebo @ 000001e109703580]     rg16hf               FLOAT  4    RG   SsLRbBVutHWG n   {16 16 0  0 } {16 16 0  0 } vec2       rg16f            
[libplacebo @ 000001e109703580]     rg16s                SNORM  4    RG   SsLRbBVutHWG n   {16 16 0  0 } {16 16 0  0 } vec2       rg16_snorm       
[libplacebo @ 000001e109703580]     rgba16               UNORM  8    RGBA SsLRbBVutHWG n   {16 16 16 16} {16 16 16 16} vec4       rgba16           
[libplacebo @ 000001e109703580]     rgba16hf             FLOAT  8    RGBA SsLRbBVutHWG n   {16 16 16 16} {16 16 16 16} vec4       rgba16f    AB4H  
[libplacebo @ 000001e109703580]     rgba16s              SNORM  8    RGBA SsLRbBVutHWG n   {16 16 16 16} {16 16 16 16} vec4       rgba16_snorm       
[libplacebo @ 000001e109703580]     r32f                 FLOAT  4    R    SsLRbBVutHWG n   {32 0  0  0 } {32 0  0  0 } float      r32f             
[libplacebo @ 000001e109703580]     rg32f                FLOAT  8    RG   SsLRbBVutHWG n   {32 32 0  0 } {32 32 0  0 } vec2       rg32f            
[libplacebo @ 000001e109703580]     rgba32f              FLOAT  16   RGBA SsLRbBVutHWG n   {32 32 32 32} {32 32 32 32} vec4       rgba32f          
[libplacebo @ 000001e109703580]     rgb565               UNORM  2    RGB  SsLRbB-utHWG n   {5  6  5  0 } {5  6  5  0 } vec3                  BG16  
[libplacebo @ 000001e109703580]     bgr5a1               UNORM  2    BGRA SsLRbB-utHWG n   {5  5  5  1 } {5  5  5  1 } vec4                  AR15  
[libplacebo @ 000001e109703580]     bgr565               UNORM  2    BGR  SsLRbB-utHWG n   {5  6  5  0 } {5  6  5  0 } vec3                  RG16  
[libplacebo @ 000001e109703580]     r8i                  SINT   1    R    Ss-R-BVutHWG n   {8  0  0  0 } {8  0  0  0 } int        r8i              
[libplacebo @ 000001e109703580]     r8u                  UINT   1    R    Ss-R-BVutHWG n   {8  0  0  0 } {8  0  0  0 } uint       r8ui             
[libplacebo @ 000001e109703580]     rg8i                 SINT   2    RG   Ss-R-BVutHWG n   {8  8  0  0 } {8  8  0  0 } ivec2      rg8i             
[libplacebo @ 000001e109703580]     rg8u                 UINT   2    RG   Ss-R-BVutHWG n   {8  8  0  0 } {8  8  0  0 } uvec2      rg8ui            
[libplacebo @ 000001e109703580]     rgba8i               SINT   4    RGBA Ss-R-BVutHWG n   {8  8  8  8 } {8  8  8  8 } ivec4      rgba8i           
[libplacebo @ 000001e109703580]     rgba8u               UINT   4    RGBA Ss-R-BVutHWG n   {8  8  8  8 } {8  8  8  8 } uvec4      rgba8ui          
[libplacebo @ 000001e109703580]     rgb10a2u             UINT   4    RGBA Ss-R-BVutHWG n   {10 10 10 2 } {10 10 10 2 } uvec4      rgb10_a2ui       
[libplacebo @ 000001e109703580]     r16i                 SINT   2    R    Ss-R-BVutHWG n   {16 0  0  0 } {16 0  0  0 } int        r16i             
[libplacebo @ 000001e109703580]     r16u                 UINT   2    R    Ss-R-BVutHWG n   {16 0  0  0 } {16 0  0  0 } uint       r16ui            
[libplacebo @ 000001e109703580]     rg16i                SINT   4    RG   Ss-R-BVutHWG n   {16 16 0  0 } {16 16 0  0 } ivec2      rg16i            
[libplacebo @ 000001e109703580]     rg16u                UINT   4    RG   Ss-R-BVutHWG n   {16 16 0  0 } {16 16 0  0 } uvec2      rg16ui           
[libplacebo @ 000001e109703580]     rgba16i              SINT   8    RGBA Ss-R-BVutHWG n   {16 16 16 16} {16 16 16 16} ivec4      rgba16i          
[libplacebo @ 000001e109703580]     rgba16u              UINT   8    RGBA Ss-R-BVutHWG n   {16 16 16 16} {16 16 16 16} uvec4      rgba16ui         
[libplacebo @ 000001e109703580]     r32i                 SINT   4    R    Ss-R-BVutHWG n   {32 0  0  0 } {32 0  0  0 } int        r32i             
[libplacebo @ 000001e109703580]     r32u                 UINT   4    R    Ss-R-BVutHWG n   {32 0  0  0 } {32 0  0  0 } uint       r32ui            
[libplacebo @ 000001e109703580]     rg32i                SINT   8    RG   Ss-R-BVutHWG n   {32 32 0  0 } {32 32 0  0 } ivec2      rg32i            
[libplacebo @ 000001e109703580]     rg32u                UINT   8    RG   Ss-R-BVutHWG n   {32 32 0  0 } {32 32 0  0 } uvec2      rg32ui           
[libplacebo @ 000001e109703580]     rgba32i              SINT   16   RGBA Ss-R-BVutHWG n   {32 32 32 32} {32 32 32 32} ivec4      rgba32i          
[libplacebo @ 000001e109703580]     rgba32u              UINT   16   RGBA Ss-R-BVutHWG n   {32 32 32 32} {32 32 32 32} uvec4      rgba32ui         
[libplacebo @ 000001e109703580]     a1bgr5               UNORM  2    ABGR S-LRbB-u-H-G n   {1  5  5  5 } {1  5  5  5 } vec4                  RA15  
[libplacebo @ 000001e109703580]     argb4                UNORM  2    ARGB S-LRbB-u-H-G n   {4  4  4  4 } {4  4  4  4 } vec4                  BA12  
[libplacebo @ 000001e109703580]     abgr4                UNORM  2    ABGR S-LRbB-u-H-G n   {4  4  4  4 } {4  4  4  4 } vec4                  RA12  
[libplacebo @ 000001e109703580]     a1rgb5               UNORM  2    ARGB S-LR---u-H-G n   {1  5  5  5 } {1  5  5  5 } vec4                  BA15  
[libplacebo @ 000001e109703580]     rgb8                 UNORM  3    RGB  S-L---Vu-H-G n   {8  8  8  0 } {8  8  8  0 } vec3                  BG24  
[libplacebo @ 000001e109703580]     rgb8s                SNORM  3    RGB  S-L---Vu-H-G n   {8  8  8  0 } {8  8  8  0 } vec3                        
[libplacebo @ 000001e109703580]     rgb16                UNORM  6    RGB  S-L---Vu-H-G n   {16 16 16 0 } {16 16 16 0 } vec3                        
[libplacebo @ 000001e109703580]     rgb16hf              FLOAT  6    RGB  S-L---Vu-H-G n   {16 16 16 0 } {16 16 16 0 } vec3                        
[libplacebo @ 000001e109703580]     rgb16s               SNORM  6    RGB  S-L---Vu-H-G n   {16 16 16 0 } {16 16 16 0 } vec3                        
[libplacebo @ 000001e109703580]     rgb32f               FLOAT  12   RGB  S-----Vu-H-G n   {32 32 32 0 } {32 32 32 0 } vec3                        
[libplacebo @ 000001e109703580]     rgb32i               SINT   12   RGB  S-----Vu-H-G n   {32 32 32 0 } {32 32 32 0 } ivec3                       
[libplacebo @ 000001e109703580]     rgb32u               UINT   12   RGB  S-----Vu-H-G n   {32 32 32 0 } {32 32 32 0 } uvec3                       
[libplacebo @ 000001e109703580]     rgb8i                SINT   3    RGB  S-----V--H-G n   {8  8  8  0 } {8  8  8  0 } ivec3                       
[libplacebo @ 000001e109703580]     rgb8u                UINT   3    RGB  S-----V--H-G n   {8  8  8  0 } {8  8  8  0 } uvec3                       
[libplacebo @ 000001e109703580]     rgb10a2i             SINT   4    RGBA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } ivec4                       
[libplacebo @ 000001e109703580]     rgb10a2s             SNORM  4    RGBA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } vec4                        
[libplacebo @ 000001e109703580]     bgr10a2i             SINT   4    BGRA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } ivec4                       
[libplacebo @ 000001e109703580]     bgr10a2s             SNORM  4    BGRA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } vec4                        
[libplacebo @ 000001e109703580]     bgr10a2u             UINT   4    BGRA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } uvec4                       
[libplacebo @ 000001e109703580]     rgb16i               SINT   6    RGB  ------V--H-- n   {16 16 16 0 } {16 16 16 0 } ivec3                       
[libplacebo @ 000001e109703580]     rgb16u               UINT   6    RGB  ------V--H-- n   {16 16 16 0 } {16 16 16 0 } uvec3                       
[libplacebo @ 000001e109703580]     gr4                  UNORM  1    GR   ---------H-- n   {4  4  0  0 } {4  4  0  0 }                             
[libplacebo @ 000001e109703580]     bgr8                 UNORM  3    BGR  ---------H-- n   {8  8  8  0 } {8  8  8  0 }                       RG24  
[libplacebo @ 000001e109703580]     bgr8i                SINT   3    BGR  ---------H-- n   {8  8  8  0 } {8  8  8  0 }                             
[libplacebo @ 000001e109703580]     bgr8u                UINT   3    BGR  ---------H-- n   {8  8  8  0 } {8  8  8  0 }                             
[libplacebo @ 000001e109703580]     bgra8i               SINT   4    BGRA ---------H-- n   {8  8  8  8 } {8  8  8  8 }                             
[libplacebo @ 000001e109703580]     bgra8u               UINT   4    BGRA ---------H-- n   {8  8  8  8 } {8  8  8  8 }                             
[libplacebo @ 000001e109703580]     rx10                 UNORM  2    R    ---------H-- n   {10 0  0  0 } {16 0  0  0 }                             
[libplacebo @ 000001e109703580]     rxgx10               UNORM  4    RG   ---------H-- n   {10 10 0  0 } {16 16 0  0 }                             
[libplacebo @ 000001e109703580]     rx12                 UNORM  2    R    ---------H-- n   {12 0  0  0 } {16 0  0  0 }                             
[libplacebo @ 000001e109703580]     rxgx12               UNORM  4    RG   ---------H-- n   {12 12 0  0 } {16 16 0  0 }                             
[libplacebo @ 000001e109703580]     r16f                 FLOAT  4    R    SsLRbB---HWG y   {16 0  0  0 } {32 0  0  0 }            r16f             
[libplacebo @ 000001e109703580]     rg16f                FLOAT  8    RG   SsLRbB---HWG y   {16 16 0  0 } {32 32 0  0 }            rg16f            
[libplacebo @ 000001e109703580]     rgba16f              FLOAT  16   RGBA SsLRbB---HWG y   {16 16 16 16} {32 32 32 32}            rgba16f          
[libplacebo @ 000001e109703580]     rgb16f               FLOAT  12   RGB  S-L------H-G y   {16 16 16 0 } {32 32 32 0 }                             
[libplacebo @ 000001e109703580]     g8_b8_r8_420         UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       YU12  
[libplacebo @ 000001e109703580]     g8_b8_r8_422         UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       YU16  
[libplacebo @ 000001e109703580]     g8_b8_r8_444         UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       YU24  
[libplacebo @ 000001e109703580]     g8_br8_420           UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       NV12  
[libplacebo @ 000001e109703580]     g8_br8_422           UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       NV16  
[libplacebo @ 000001e109703580]     g8_br8_444           UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       NV24  
[libplacebo @ 000001e109703580]     gx10_bx10_rx10_420   UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     gx10_bx10_rx10_422   UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     gx10_bx10_rx10_444   UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                       Q410  
[libplacebo @ 000001e109703580]     gx10_bxrx10_420      UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                       P010  
[libplacebo @ 000001e109703580]     gx10_bxrx10_422      UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                       P210  
[libplacebo @ 000001e109703580]     gx10_bxrx10_444      UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     gx12_bx12_rx12_420   UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     gx12_bx12_rx12_422   UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     gx12_bx12_rx12_444   UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     gx12_bxrx12_420      UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                       P012  
[libplacebo @ 000001e109703580]     gx12_bxrx12_422      UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     gx12_bxrx12_444      UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     g16_b16_r16_420      UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     g16_b16_r16_422      UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     g16_b16_r16_444      UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     g16_br16_420         UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                       P016  
[libplacebo @ 000001e109703580]     g16_br16_422         UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 000001e109703580]     g16_br16_444         UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1096459c0] Output frame with POC 16.
[AVFilterGraph @ 000001e124aa1e40] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
[graph 0 input from stream 0:0 @ 000001e116a1ef00] video frame properties congruent with link at pts_time: 0
[libplacebo @ 000001e109703580] (Re)creating 3840x2160x0 texture with format r16: ../src/utils/upload.c:245
[libplacebo @ 000001e109703580] Allocating 67108864 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000001e109703580] Spent 0.271 ms allocating slab
[libplacebo @ 000001e109703580] Imported host pointer is not page-aligned. This should normally be fine on most platforms, but may cause issues in some rare circumstances.
[hevc @ 000001e1096f6a80] Decoded frame with POC 1.
[hevc @ 000001e1096f6a80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096f6a80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096f6a80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1096f6a80] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e1096f6a80] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] Decoded frame with POC 2.
[hevc @ 000001e1096f6a80] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[libplacebo @ 000001e109703580] (Re)creating 1920x1080x0 texture with format r16: ../src/utils/upload.c:245
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[libplacebo @ 000001e109703580] Allocating 16728064 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[libplacebo @ 000001e109703580] Spent 0.284 ms allocating slab
[libplacebo @ 000001e109703580] (Re)creating 1920x1080x0 texture with format r16: ../src/utils/upload.c:245
[libplacebo @ 000001e109703580] (Re)creating 3840x2160x0 texture with format r16: ../src/utils/upload.c:245
[libplacebo @ 000001e109703580] (Re)creating 1920x1080x0 texture with format r16: ../src/utils/upload.c:245
    Last message repeated 1 times
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1096f6a80] Output frame with POC 17.
[hevc @ 000001e10981fc00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 5 times
[hevc @ 000001e10981fc00] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10981fc00] nal_unit_type: 21(CRA_NUT), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[libplacebo @ 000001e109703580] (Re)creating 3840x1600x0 texture with format r16: ../src/utils/upload.c:356
[libplacebo @ 000001e109703580] (Re)creating 1920x800x0 texture with format rg16: ../src/utils/upload.c:356
[hevc @ 000001e10981fc00] Decoding VPS
[hevc @ 000001e10981fc00] Main 10 profile bitstream
[libplacebo @ 000001e109703580] (Re)creating 1920x1080x0 texture with format rg16: src/renderer.c:1647
[libplacebo @ 000001e109703580] Allocating 71303168 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000001e109703580] Spent 0.310 ms allocating slab
[libplacebo @ 000001e109703580] vertex shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 000001e109703580] [ 11] layout(constant_id=1) const float _8004 = 1; 
[libplacebo @ 000001e109703580] [ 12] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 13] layout(binding=1) uniform  sampler2D _8002;
[libplacebo @ 000001e109703580] [ 14] layout(location=0) in vec2 _7;
[libplacebo @ 000001e109703580] [ 15] layout(location=0) out vec2 _3;
[libplacebo @ 000001e109703580] [ 16] layout(location=1) in vec2 _8;
[libplacebo @ 000001e109703580] [ 17] layout(location=1) out vec2 _8003;
[libplacebo @ 000001e109703580] [ 18] layout(location=2) in vec2 _9;
[libplacebo @ 000001e109703580] [ 19] void main() {
[libplacebo @ 000001e109703580] [ 20] _3 = _7;
[libplacebo @ 000001e109703580] [ 21] _8003 = _8;
[libplacebo @ 000001e109703580] [ 22] vec2 va_pos = _9; 
[libplacebo @ 000001e109703580] [ 23] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 000001e109703580] [ 24] }
[libplacebo @ 000001e109703580] fragment shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 000001e109703580] [ 11] layout(constant_id=1) const float _8004 = 1; 
[libplacebo @ 000001e109703580] [ 12] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 13] layout(binding=1) uniform  sampler2D _8002;
[libplacebo @ 000001e109703580] [ 14] layout(location=0) in vec2 _3;
[libplacebo @ 000001e109703580] [ 15] layout(location=1) in vec2 _8003;
[libplacebo @ 000001e109703580] [ 16] layout(location=0) out vec4 out_color;
[libplacebo @ 000001e109703580] [ 17] 
[libplacebo @ 000001e109703580] [ 18] vec4 _8001() {
[libplacebo @ 000001e109703580] [ 19] // pl_shader_sample_direct                            
[libplacebo @ 000001e109703580] [ 20] vec4 color = vec4(_8004) * textureLod(_8002, _8003, 0.0);   
[libplacebo @ 000001e109703580] [ 21] return color;
[libplacebo @ 000001e109703580] [ 22] }
[libplacebo @ 000001e109703580] [ 23] 
[libplacebo @ 000001e109703580] [ 24] vec4 _1() {
[libplacebo @ 000001e109703580] [ 25] // pl_shader_sample_direct                            
[libplacebo @ 000001e109703580] [ 26] vec4 color = vec4(_4) * textureLod(_2, _3, 0.0);   
[libplacebo @ 000001e109703580] [ 27] {                 
[libplacebo @ 000001e109703580] [ 28] vec4 tmp = _8001(); 
[libplacebo @ 000001e109703580] [ 29] color[1] = tmp[0]; 
[libplacebo @ 000001e109703580] [ 30] } 
[libplacebo @ 000001e109703580] [ 31] return color;
[libplacebo @ 000001e109703580] [ 32] }
[libplacebo @ 000001e109703580] [ 33] 
[libplacebo @ 000001e109703580] [ 34] void main() {
[libplacebo @ 000001e109703580] [ 35] out_color = _1();
[libplacebo @ 000001e109703580] [ 36] }
[libplacebo @ 000001e109703580] Specialization constant values:
[libplacebo @ 000001e109703580]   constant_id=0: 1.000000
[libplacebo @ 000001e109703580]   constant_id=1: 1.000000
[hevc @ 000001e10981fc00] Decoding SPS
[hevc @ 000001e10981fc00] Main 10 profile bitstream
[hevc @ 000001e10981fc00] Decoding VUI
[hevc @ 000001e10981fc00] Decoding PPS
[hevc @ 000001e10981fc00] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e10981fc00] Skipped PREFIX SEI 0
[hevc @ 000001e10981fc00] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e10981fc00] Skipped PREFIX SEI 6
[hevc @ 000001e10981fc00] Decoding SEI
    Last message repeated 1 times
[hevc @ 000001e10981fc00] Decoding VPS
[hevc @ 000001e10981fc00] Main 10 profile bitstream
[hevc @ 000001e10981fc00] Decoding SPS
[hevc @ 000001e10981fc00] Main 10 profile bitstream
[hevc @ 000001e10981fc00] Decoding VUI
[hevc @ 000001e10981fc00] Decoding PPS
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10981fc00] Output frame with POC 18.
[hevc @ 000001e1099869c0] Decoded frame with POC 6.
[hevc @ 000001e1099869c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] nal_unit_type: 8(RASL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e1099869c0] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e1099869c0] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e1099869c0] Output frame with POC 19.
[hevc @ 000001e109ae8b80] Decoded frame with POC 5.
[hevc @ 000001e109a37a80] Decoded frame with POC 4.
[hevc @ 000001e109a37a80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109a37a80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109a37a80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109a37a80] nal_unit_type: 8(RASL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109a37a80] Decoding PPS
[hevc @ 000001e109a37a80] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e109a37a80] Output frame with POC 20.
[hevc @ 000001e109ae8b80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109ae8b80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109ae8b80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109ae8b80] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109ae8b80] Decoding PPS
[hevc @ 000001e10978db40] Decoded frame with POC 9.
[hevc @ 000001e109ae8b80] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e109ae8b80] Output frame with POC 21.
[hevc @ 000001e10978db40] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10978db40] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10978db40] Decoding PPS
[hevc @ 000001e10978db40] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10978db40] Output frame with POC 22.
[hevc @ 000001e10b7fe9c0] Decoded frame with POC 7.
[hevc @ 000001e10b8afa80] Decoded frame with POC 8.
[hevc @ 000001e10b7fe9c0] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b7fe9c0] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b7fe9c0] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b7fe9c0] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10b7fe9c0] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b7fe9c0] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10b7fe9c0] Output frame with POC 23.
[hevc @ 000001e10b8afa80] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b8afa80] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b8afa80] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b8afa80] nal_unit_type: 1(TRAIL_R), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10b8afa80] Decoding PPS
[hevc @ 000001e10b8afa80] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10b8afa80] Output frame with POC 24.
[hevc @ 000001e10b960880] Decoded frame with POC 12.
[hevc @ 000001e10b960880] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b960880] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b960880] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b960880] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 7 times
[hevc @ 000001e10b960880] Decoding PPS
[hevc @ 000001e109b8eb00] nal_unit_type: 35(AUD), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
[hevc @ 000001e10b960880] Decoding SEI
[hevc @ 000001e109b8eb00] nal_unit_type: 0(TRAIL_N), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 6 times
[hevc @ 000001e109b8eb00] Decoding PPS
[hevc @ 000001e109b8eb00] Decoding SEI
Mastering Display Metadata:
r(0.6800,0.3200) g(0.2650,0.6900) b(0.1500 0.0600) wp(0.3127, 0.3290)
min_luminance=0.005000, max_luminance=1000.000000
Content Light Level Metadata:
MaxCLL=1000, MaxFALL=497
[hevc @ 000001e10b960880] Output frame with POC 25.
[hevc @ 000001e10ba11680] Decoded frame with POC 10.
[hevc @ 000001e109730d00] Decoded frame with POC 11.
[hevc @ 000001e109731100] Decoded frame with POC 15.
[hevc @ 000001e1098133c0] Decoded frame with POC 14.
[hevc @ 000001e109812bc0] Decoded frame with POC 13.
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 85.686 ms translating SPIR-V
[hevc @ 000001e10981b3c0] Decoded frame with POC 18.
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 1.993 ms translating SPIR-V
[libplacebo @ 000001e109703580] Spent 0.021 ms compiling shader
[libplacebo @ 000001e109703580] Spent 2.363 ms creating pipeline
[libplacebo @ 000001e109703580] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000001e109703580] Allocating 261888 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:1160
[libplacebo @ 000001e109703580] Spent 0.520 ms allocating slab
[hevc @ 000001e1096f6a80] Decoded frame with POC 17.
[hevc @ 000001e1096459c0] Decoded frame with POC 16.
[libplacebo @ 000001e109703580] LUT invalidated, regenerating..
[libplacebo @ 000001e109703580] Spent 0.000 ms generating shader LUT
[libplacebo @ 000001e109703580] Allocating 262144 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000001e109703580] Spent 0.059 ms allocating slab
[libplacebo @ 000001e109703580] Allocating 261888 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:533
[libplacebo @ 000001e109703580] Spent 0.772 ms allocating slab
[libplacebo @ 000001e109703580] Allocating 261888 memory of type 0x7 (id 3) in heap 2: src/shaders/colorspace.c:1247
[libplacebo @ 000001e109703580] Spent 0.409 ms allocating slab
[libplacebo @ 000001e109703580] (Re)creating 3840x1600x0 texture with format rgba16hf: src/renderer.c:2185
[libplacebo @ 000001e109703580] Allocating 196870144 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000001e109703580] Spent 0.988 ms allocating slab
[libplacebo @ 000001e109703580] compute shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_ARB_compute_shader : enable
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [ 10] #extension GL_ARB_shader_image_load_store : enable
[libplacebo @ 000001e109703580] [ 11] #extension GL_ARB_shader_storage_buffer_object : enable
[libplacebo @ 000001e109703580] [ 12] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 13] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000001e109703580] [ 14]     layout(offset=0) vec2 _2004;
[libplacebo @ 000001e109703580] [ 15]     layout(offset=16) vec3 _4005;
[libplacebo @ 000001e109703580] [ 16]     layout(offset=32) vec2 _4015;
[libplacebo @ 000001e109703580] [ 17]     layout(offset=40) vec2 _4016;
[libplacebo @ 000001e109703580] [ 18]     layout(offset=48) vec2 _4017;
[libplacebo @ 000001e109703580] [ 19]     layout(offset=56) vec2 _4018;
[libplacebo @ 000001e109703580] [ 20]     layout(offset=64) vec2 _4019;
[libplacebo @ 000001e109703580] [ 21]     layout(offset=72) vec2 _401a;
[libplacebo @ 000001e109703580] [ 22]     layout(offset=80) vec2 _401b;
[libplacebo @ 000001e109703580] [ 23]     layout(offset=88) vec2 _401c;
[libplacebo @ 000001e109703580] [ 24]     layout(offset=96) vec2 _401d;
[libplacebo @ 000001e109703580] [ 25]     layout(offset=104) ivec2 _401f;
[libplacebo @ 000001e109703580] [ 26]     layout(offset=112) mat3 _4004;
[libplacebo @ 000001e109703580] [ 27] };
[libplacebo @ 000001e109703580] [ 28] layout(constant_id=0) const float _4002 = 1; 
[libplacebo @ 000001e109703580] [ 29] layout(constant_id=1) const float _4003 = 1; 
[libplacebo @ 000001e109703580] [ 30] layout(constant_id=2) const float _c004 = 1; 
[libplacebo @ 000001e109703580] [ 31] layout(constant_id=3) const float _2005 = 1; 
[libplacebo @ 000001e109703580] [ 32] layout(constant_id=4) const float _2009 = 1; 
[libplacebo @ 000001e109703580] [ 33] layout(constant_id=5) const float _200a = 1; 
[libplacebo @ 000001e109703580] [ 34] layout(constant_id=6) const float _200b = 1; 
[libplacebo @ 000001e109703580] [ 35] layout(constant_id=7) const int _200d = 1; 
[libplacebo @ 000001e109703580] [ 36] layout(constant_id=8) const int _200e = 1; 
[libplacebo @ 000001e109703580] [ 37] layout(constant_id=9) const float _200f = 1; 
[libplacebo @ 000001e109703580] [ 38] layout(constant_id=10) const float _4011 = 1; 
[libplacebo @ 000001e109703580] [ 39] layout(constant_id=11) const float _4012 = 1; 
[libplacebo @ 000001e109703580] [ 40] layout(constant_id=12) const float _4013 = 1; 
[libplacebo @ 000001e109703580] [ 41] layout(constant_id=13) const float _4014 = 1; 
[libplacebo @ 000001e109703580] [ 42] layout(binding=0) uniform  sampler2D _c002;
[libplacebo @ 000001e109703580] [ 43] layout(binding=1) uniform  sampler2D _2002;
[libplacebo @ 000001e109703580] [ 44] layout(binding=2) uniform  sampler1D _2007;
[libplacebo @ 000001e109703580] [ 45] layout(std430, binding=3)  restrict buffer _400b {
[libplacebo @ 000001e109703580] [ 46]     layout(offset=0) uint _4006[12];
[libplacebo @ 000001e109703580] [ 47]     layout(offset=48) uint _4007[12];
[libplacebo @ 000001e109703580] [ 48]     layout(offset=96) uint _4008[12];
[libplacebo @ 000001e109703580] [ 49]     layout(offset=144) uint _4009[12];
[libplacebo @ 000001e109703580] [ 50]     layout(offset=192) uint _400a[768];
[libplacebo @ 000001e109703580] [ 51] };
[libplacebo @ 000001e109703580] [ 52] layout(binding=4, rgba16f) writeonly restrict uniform image2D _401e;
[libplacebo @ 000001e109703580] [ 53] layout (local_size_x = 32, local_size_y = 32) in;
[libplacebo @ 000001e109703580] [ 54] #define frame_wg_count _4006
[libplacebo @ 000001e109703580] [ 55] #define frame_wg_active _4007
[libplacebo @ 000001e109703580] [ 56] #define frame_sum_pq _4008
[libplacebo @ 000001e109703580] [ 57] #define frame_max_pq _4009
[libplacebo @ 000001e109703580] [ 58] #define frame_hist _400a
[libplacebo @ 000001e109703580] [ 59] #define frag_pos(id) (vec2(id) + vec2(0.5))  
[libplacebo @ 000001e109703580] [ 60] #define frag_map(id) (_4015 * frag_pos(id))    
[libplacebo @ 000001e109703580] [ 61] #define gl_FragCoord vec4(frag_pos(gl_GlobalInvocationID), 0.0, 1.0) 
[libplacebo @ 000001e109703580] [ 62] #define _c003_map(id) (mix(mix(_4016, _4017, frag_map(id).x),      mix(_4018, _4019, frag_map(id).x), frag_map(id).y)) 
[libplacebo @ 000001e109703580] [ 63] #define _c003 (_c003_map(gl_GlobalInvocationID)) 
[libplacebo @ 000001e109703580] [ 64] #define _2003_map(id) (mix(mix(_401a, _401b, frag_map(id).x),      mix(_401c, _401d, frag_map(id).x), frag_map(id).y)) 
[libplacebo @ 000001e109703580] [ 65] #define _2003 (_2003_map(gl_GlobalInvocationID)) 
[libplacebo @ 000001e109703580] [ 66] 
[libplacebo @ 000001e109703580] [ 67] vec4 _c001() {
[libplacebo @ 000001e109703580] [ 68] // pl_shader_sample_direct                            
[libplacebo @ 000001e109703580] [ 69] vec4 color = vec4(_c004) * textureLod(_c002, _c003, 0.0);   
[libplacebo @ 000001e109703580] [ 70] return color;
[libplacebo @ 000001e109703580] [ 71] }
[libplacebo @ 000001e109703580] [ 72] 
[libplacebo @ 000001e109703580] [ 73] #define _2008(x) (_200a * (x) + _2009) 
[libplacebo @ 000001e109703580] [ 74] #define _2006(pos) (textureLod(_2007, float(\
[libplacebo @ 000001e109703580] [ 75]     _2008(float(pos))\
[libplacebo @ 000001e109703580] [ 76]   ), 0.0).x)
[libplacebo @ 000001e109703580] [ 77] shared vec2 _200c_base; 
[libplacebo @ 000001e109703580] [ 78] shared float _200c_0[_200e * _200d]; 
[libplacebo @ 000001e109703580] [ 79] shared float _200c_1[_200e * _200d]; 
[libplacebo @ 000001e109703580] [ 80] vec4 _2001() {
[libplacebo @ 000001e109703580] [ 81] // pl_shader_sample_polar                     
[libplacebo @ 000001e109703580] [ 82] vec4 color = vec4(0.0);                       
[libplacebo @ 000001e109703580] [ 83] {                                             
[libplacebo @ 000001e109703580] [ 84] vec2 pos = _2003, pt = _2004;                     
[libplacebo @ 000001e109703580] [ 85] vec2 size = vec2(textureSize(_2002, 0));        
[libplacebo @ 000001e109703580] [ 86] vec2 fcoord = fract(pos * size - vec2(0.5));  
[libplacebo @ 000001e109703580] [ 87] vec2 base = pos - pt * fcoord;                
[libplacebo @ 000001e109703580] [ 88] vec2 center = base + pt * vec2(0.5);          
[libplacebo @ 000001e109703580] [ 89] ivec2 offset;                                 
[libplacebo @ 000001e109703580] [ 90] float w, d, wsum = 0.0;                       
[libplacebo @ 000001e109703580] [ 91] int idx;                                      
[libplacebo @ 000001e109703580] [ 92] vec4 c;                                       
[libplacebo @ 000001e109703580] [ 93] uvec2 base_id = uvec2(0u); 
[libplacebo @ 000001e109703580] [ 94] if (gl_LocalInvocationID.xy == base_id)               
[libplacebo @ 000001e109703580] [ 95]     _200c_base = base;                                  
[libplacebo @ 000001e109703580] [ 96] barrier();                                            
[libplacebo @ 000001e109703580] [ 97] ivec2 rel = ivec2(round((base - _200c_base) * size));   
[libplacebo @ 000001e109703580] [ 98] for (int y = int(gl_LocalInvocationID.y); y < _200e; y += 32) {     
[libplacebo @ 000001e109703580] [ 99] for (int x = int(gl_LocalInvocationID.x); x < _200d; x += 32) {     
[libplacebo @ 000001e109703580] [100] c = textureLod(_2002, _200c_base + pt * vec2(x - 3, y - 3), 0.0);   
[libplacebo @ 000001e109703580] [101] _200c_0[_200d * y + x] = c[0]; 
[libplacebo @ 000001e109703580] [102] _200c_1[_200d * y + x] = c[1]; 
[libplacebo @ 000001e109703580] [103] }}                     
[libplacebo @ 000001e109703580] [104] barrier();             
[libplacebo @ 000001e109703580] [105] idx = _200d * rel.y + rel.x + _200d * 0 + 0; 
[libplacebo @ 000001e109703580] [106] idx = _200d * rel.y + rel.x + _200d * 0 + 1; 
[libplacebo @ 000001e109703580] [107] idx = _200d * rel.y + rel.x + _200d * 0 + 2; 
[libplacebo @ 000001e109703580] [108] idx = _200d * rel.y + rel.x + _200d * 0 + 3; 
[libplacebo @ 000001e109703580] [109] offset = ivec2(0, -3);
[libplacebo @ 000001e109703580] [110] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [111] if (d < _200b) {
[libplacebo @ 000001e109703580] [112] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [113] wsum += w;
[libplacebo @ 000001e109703580] [114] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [115] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [116] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [117] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [118] }
[libplacebo @ 000001e109703580] [119] idx = _200d * rel.y + rel.x + _200d * 0 + 4; 
[libplacebo @ 000001e109703580] [120] offset = ivec2(1, -3);
[libplacebo @ 000001e109703580] [121] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [122] if (d < _200b) {
[libplacebo @ 000001e109703580] [123] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [124] wsum += w;
[libplacebo @ 000001e109703580] [125] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [126] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [127] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [128] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [129] }
[libplacebo @ 000001e109703580] [130] idx = _200d * rel.y + rel.x + _200d * 0 + 5; 
[libplacebo @ 000001e109703580] [131] idx = _200d * rel.y + rel.x + _200d * 0 + 6; 
[libplacebo @ 000001e109703580] [132] idx = _200d * rel.y + rel.x + _200d * 0 + 7; 
[libplacebo @ 000001e109703580] [133] idx = _200d * rel.y + rel.x + _200d * 1 + 0; 
[libplacebo @ 000001e109703580] [134] idx = _200d * rel.y + rel.x + _200d * 1 + 1; 
[libplacebo @ 000001e109703580] [135] offset = ivec2(-2, -2);
[libplacebo @ 000001e109703580] [136] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [137] if (d < _200b) {
[libplacebo @ 000001e109703580] [138] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [139] wsum += w;
[libplacebo @ 000001e109703580] [140] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [141] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [142] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [143] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [144] }
[libplacebo @ 000001e109703580] [145] idx = _200d * rel.y + rel.x + _200d * 1 + 2; 
[libplacebo @ 000001e109703580] [146] offset = ivec2(-1, -2);
[libplacebo @ 000001e109703580] [147] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [148] if (d < _200b) {
[libplacebo @ 000001e109703580] [149] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [150] wsum += w;
[libplacebo @ 000001e109703580] [151] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [152] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [153] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [154] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [155] }
[libplacebo @ 000001e109703580] [156] idx = _200d * rel.y + rel.x + _200d * 1 + 3; 
[libplacebo @ 000001e109703580] [157] offset = ivec2(0, -2);
[libplacebo @ 000001e109703580] [158] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [159] if (d < _200b) {
[libplacebo @ 000001e109703580] [160] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [161] wsum += w;
[libplacebo @ 000001e109703580] [162] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [163] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [164] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [165] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [166] }
[libplacebo @ 000001e109703580] [167] idx = _200d * rel.y + rel.x + _200d * 1 + 4; 
[libplacebo @ 000001e109703580] [168] offset = ivec2(1, -2);
[libplacebo @ 000001e109703580] [169] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [170] if (d < _200b) {
[libplacebo @ 000001e109703580] [171] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [172] wsum += w;
[libplacebo @ 000001e109703580] [173] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [174] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [175] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [176] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [177] }
[libplacebo @ 000001e109703580] [178] idx = _200d * rel.y + rel.x + _200d * 1 + 5; 
[libplacebo @ 000001e109703580] [179] offset = ivec2(2, -2);
[libplacebo @ 000001e109703580] [180] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [181] if (d < _200b) {
[libplacebo @ 000001e109703580] [182] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [183] wsum += w;
[libplacebo @ 000001e109703580] [184] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [185] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [186] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [187] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [188] }
[libplacebo @ 000001e109703580] [189] idx = _200d * rel.y + rel.x + _200d * 1 + 6; 
[libplacebo @ 000001e109703580] [190] offset = ivec2(3, -2);
[libplacebo @ 000001e109703580] [191] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [192] if (d < _200b) {
[libplacebo @ 000001e109703580] [193] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [194] wsum += w;
[libplacebo @ 000001e109703580] [195] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [196] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [197] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [198] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [199] }
[libplacebo @ 000001e109703580] [200] idx = _200d * rel.y + rel.x + _200d * 1 + 7; 
[libplacebo @ 000001e109703580] [201] idx = _200d * rel.y + rel.x + _200d * 2 + 0; 
[libplacebo @ 000001e109703580] [202] idx = _200d * rel.y + rel.x + _200d * 2 + 1; 
[libplacebo @ 000001e109703580] [203] offset = ivec2(-2, -1);
[libplacebo @ 000001e109703580] [204] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [205] if (d < _200b) {
[libplacebo @ 000001e109703580] [206] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [207] wsum += w;
[libplacebo @ 000001e109703580] [208] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [209] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [210] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [211] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [212] }
[libplacebo @ 000001e109703580] [213] idx = _200d * rel.y + rel.x + _200d * 2 + 2; 
[libplacebo @ 000001e109703580] [214] offset = ivec2(-1, -1);
[libplacebo @ 000001e109703580] [215] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [216] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [217] wsum += w;
[libplacebo @ 000001e109703580] [218] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [219] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [220] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [221] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [222] idx = _200d * rel.y + rel.x + _200d * 2 + 3; 
[libplacebo @ 000001e109703580] [223] offset = ivec2(0, -1);
[libplacebo @ 000001e109703580] [224] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [225] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [226] wsum += w;
[libplacebo @ 000001e109703580] [227] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [228] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [229] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [230] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [231] idx = _200d * rel.y + rel.x + _200d * 2 + 4; 
[libplacebo @ 000001e109703580] [232] offset = ivec2(1, -1);
[libplacebo @ 000001e109703580] [233] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [234] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [235] wsum += w;
[libplacebo @ 000001e109703580] [236] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [237] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [238] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [239] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [240] idx = _200d * rel.y + rel.x + _200d * 2 + 5; 
[libplacebo @ 000001e109703580] [241] offset = ivec2(2, -1);
[libplacebo @ 000001e109703580] [242] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [243] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [244] wsum += w;
[libplacebo @ 000001e109703580] [245] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [246] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [247] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [248] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [249] idx = _200d * rel.y + rel.x + _200d * 2 + 6; 
[libplacebo @ 000001e109703580] [250] offset = ivec2(3, -1);
[libplacebo @ 000001e109703580] [251] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [252] if (d < _200b) {
[libplacebo @ 000001e109703580] [253] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [254] wsum += w;
[libplacebo @ 000001e109703580] [255] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [256] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [257] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [258] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [259] }
[libplacebo @ 000001e109703580] [260] idx = _200d * rel.y + rel.x + _200d * 2 + 7; 
[libplacebo @ 000001e109703580] [261] idx = _200d * rel.y + rel.x + _200d * 3 + 0; 
[libplacebo @ 000001e109703580] [262] offset = ivec2(-3, 0);
[libplacebo @ 000001e109703580] [263] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [264] if (d < _200b) {
[libplacebo @ 000001e109703580] [265] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [266] wsum += w;
[libplacebo @ 000001e109703580] [267] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [268] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [269] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [270] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [271] }
[libplacebo @ 000001e109703580] [272] idx = _200d * rel.y + rel.x + _200d * 3 + 1; 
[libplacebo @ 000001e109703580] [273] offset = ivec2(-2, 0);
[libplacebo @ 000001e109703580] [274] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [275] if (d < _200b) {
[libplacebo @ 000001e109703580] [276] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [277] wsum += w;
[libplacebo @ 000001e109703580] [278] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [279] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [280] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [281] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [282] }
[libplacebo @ 000001e109703580] [283] idx = _200d * rel.y + rel.x + _200d * 3 + 2; 
[libplacebo @ 000001e109703580] [284] offset = ivec2(-1, 0);
[libplacebo @ 000001e109703580] [285] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [286] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [287] wsum += w;
[libplacebo @ 000001e109703580] [288] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [289] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [290] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [291] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [292] idx = _200d * rel.y + rel.x + _200d * 3 + 3; 
[libplacebo @ 000001e109703580] [293] offset = ivec2(0, 0);
[libplacebo @ 000001e109703580] [294] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [295] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [296] wsum += w;
[libplacebo @ 000001e109703580] [297] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [298] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [299] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [300] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [301] idx = _200d * rel.y + rel.x + _200d * 3 + 4; 
[libplacebo @ 000001e109703580] [302] offset = ivec2(1, 0);
[libplacebo @ 000001e109703580] [303] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [304] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [305] wsum += w;
[libplacebo @ 000001e109703580] [306] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [307] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [308] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [309] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [310] idx = _200d * rel.y + rel.x + _200d * 3 + 5; 
[libplacebo @ 000001e109703580] [311] offset = ivec2(2, 0);
[libplacebo @ 000001e109703580] [312] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [313] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [314] wsum += w;
[libplacebo @ 000001e109703580] [315] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [316] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [317] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [318] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [319] idx = _200d * rel.y + rel.x + _200d * 3 + 6; 
[libplacebo @ 000001e109703580] [320] offset = ivec2(3, 0);
[libplacebo @ 000001e109703580] [321] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [322] if (d < _200b) {
[libplacebo @ 000001e109703580] [323] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [324] wsum += w;
[libplacebo @ 000001e109703580] [325] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [326] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [327] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [328] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [329] }
[libplacebo @ 000001e109703580] [330] idx = _200d * rel.y + rel.x + _200d * 3 + 7; 
[libplacebo @ 000001e109703580] [331] offset = ivec2(4, 0);
[libplacebo @ 000001e109703580] [332] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [333] if (d < _200b) {
[libplacebo @ 000001e109703580] [334] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [335] wsum += w;
[libplacebo @ 000001e109703580] [336] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [337] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [338] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [339] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [340] }
[libplacebo @ 000001e109703580] [341] idx = _200d * rel.y + rel.x + _200d * 4 + 0; 
[libplacebo @ 000001e109703580] [342] offset = ivec2(-3, 1);
[libplacebo @ 000001e109703580] [343] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [344] if (d < _200b) {
[libplacebo @ 000001e109703580] [345] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [346] wsum += w;
[libplacebo @ 000001e109703580] [347] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [348] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [349] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [350] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [351] }
[libplacebo @ 000001e109703580] [352] idx = _200d * rel.y + rel.x + _200d * 4 + 1; 
[libplacebo @ 000001e109703580] [353] offset = ivec2(-2, 1);
[libplacebo @ 000001e109703580] [354] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [355] if (d < _200b) {
[libplacebo @ 000001e109703580] [356] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [357] wsum += w;
[libplacebo @ 000001e109703580] [358] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [359] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [360] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [361] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [362] }
[libplacebo @ 000001e109703580] [363] idx = _200d * rel.y + rel.x + _200d * 4 + 2; 
[libplacebo @ 000001e109703580] [364] offset = ivec2(-1, 1);
[libplacebo @ 000001e109703580] [365] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [366] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [367] wsum += w;
[libplacebo @ 000001e109703580] [368] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [369] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [370] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [371] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [372] idx = _200d * rel.y + rel.x + _200d * 4 + 3; 
[libplacebo @ 000001e109703580] [373] offset = ivec2(0, 1);
[libplacebo @ 000001e109703580] [374] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [375] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [376] wsum += w;
[libplacebo @ 000001e109703580] [377] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [378] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [379] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [380] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [381] idx = _200d * rel.y + rel.x + _200d * 4 + 4; 
[libplacebo @ 000001e109703580] [382] offset = ivec2(1, 1);
[libplacebo @ 000001e109703580] [383] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [384] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [385] wsum += w;
[libplacebo @ 000001e109703580] [386] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [387] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [388] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [389] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [390] idx = _200d * rel.y + rel.x + _200d * 4 + 5; 
[libplacebo @ 000001e109703580] [391] offset = ivec2(2, 1);
[libplacebo @ 000001e109703580] [392] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [393] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [394] wsum += w;
[libplacebo @ 000001e109703580] [395] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [396] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [397] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [398] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [399] idx = _200d * rel.y + rel.x + _200d * 4 + 6; 
[libplacebo @ 000001e109703580] [400] offset = ivec2(3, 1);
[libplacebo @ 000001e109703580] [401] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [402] if (d < _200b) {
[libplacebo @ 000001e109703580] [403] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [404] wsum += w;
[libplacebo @ 000001e109703580] [405] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [406] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [407] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [408] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [409] }
[libplacebo @ 000001e109703580] [410] idx = _200d * rel.y + rel.x + _200d * 4 + 7; 
[libplacebo @ 000001e109703580] [411] offset = ivec2(4, 1);
[libplacebo @ 000001e109703580] [412] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [413] if (d < _200b) {
[libplacebo @ 000001e109703580] [414] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [415] wsum += w;
[libplacebo @ 000001e109703580] [416] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [417] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [418] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [419] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [420] }
[libplacebo @ 000001e109703580] [421] idx = _200d * rel.y + rel.x + _200d * 5 + 0; 
[libplacebo @ 000001e109703580] [422] idx = _200d * rel.y + rel.x + _200d * 5 + 1; 
[libplacebo @ 000001e109703580] [423] offset = ivec2(-2, 2);
[libplacebo @ 000001e109703580] [424] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [425] if (d < _200b) {
[libplacebo @ 000001e109703580] [426] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [427] wsum += w;
[libplacebo @ 000001e109703580] [428] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [429] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [430] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [431] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [432] }
[libplacebo @ 000001e109703580] [433] idx = _200d * rel.y + rel.x + _200d * 5 + 2; 
[libplacebo @ 000001e109703580] [434] offset = ivec2(-1, 2);
[libplacebo @ 000001e109703580] [435] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [436] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [437] wsum += w;
[libplacebo @ 000001e109703580] [438] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [439] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [440] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [441] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [442] idx = _200d * rel.y + rel.x + _200d * 5 + 3; 
[libplacebo @ 000001e109703580] [443] offset = ivec2(0, 2);
[libplacebo @ 000001e109703580] [444] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [445] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [446] wsum += w;
[libplacebo @ 000001e109703580] [447] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [448] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [449] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [450] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [451] idx = _200d * rel.y + rel.x + _200d * 5 + 4; 
[libplacebo @ 000001e109703580] [452] offset = ivec2(1, 2);
[libplacebo @ 000001e109703580] [453] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [454] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [455] wsum += w;
[libplacebo @ 000001e109703580] [456] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [457] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [458] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [459] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [460] idx = _200d * rel.y + rel.x + _200d * 5 + 5; 
[libplacebo @ 000001e109703580] [461] offset = ivec2(2, 2);
[libplacebo @ 000001e109703580] [462] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [463] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [464] wsum += w;
[libplacebo @ 000001e109703580] [465] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [466] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [467] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [468] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [469] idx = _200d * rel.y + rel.x + _200d * 5 + 6; 
[libplacebo @ 000001e109703580] [470] offset = ivec2(3, 2);
[libplacebo @ 000001e109703580] [471] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [472] if (d < _200b) {
[libplacebo @ 000001e109703580] [473] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [474] wsum += w;
[libplacebo @ 000001e109703580] [475] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [476] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [477] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [478] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [479] }
[libplacebo @ 000001e109703580] [480] idx = _200d * rel.y + rel.x + _200d * 5 + 7; 
[libplacebo @ 000001e109703580] [481] idx = _200d * rel.y + rel.x + _200d * 6 + 0; 
[libplacebo @ 000001e109703580] [482] idx = _200d * rel.y + rel.x + _200d * 6 + 1; 
[libplacebo @ 000001e109703580] [483] offset = ivec2(-2, 3);
[libplacebo @ 000001e109703580] [484] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [485] if (d < _200b) {
[libplacebo @ 000001e109703580] [486] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [487] wsum += w;
[libplacebo @ 000001e109703580] [488] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [489] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [490] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [491] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [492] }
[libplacebo @ 000001e109703580] [493] idx = _200d * rel.y + rel.x + _200d * 6 + 2; 
[libplacebo @ 000001e109703580] [494] offset = ivec2(-1, 3);
[libplacebo @ 000001e109703580] [495] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [496] if (d < _200b) {
[libplacebo @ 000001e109703580] [497] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [498] wsum += w;
[libplacebo @ 000001e109703580] [499] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [500] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [501] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [502] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [503] }
[libplacebo @ 000001e109703580] [504] idx = _200d * rel.y + rel.x + _200d * 6 + 3; 
[libplacebo @ 000001e109703580] [505] offset = ivec2(0, 3);
[libplacebo @ 000001e109703580] [506] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [507] if (d < _200b) {
[libplacebo @ 000001e109703580] [508] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [509] wsum += w;
[libplacebo @ 000001e109703580] [510] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [511] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [512] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [513] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [514] }
[libplacebo @ 000001e109703580] [515] idx = _200d * rel.y + rel.x + _200d * 6 + 4; 
[libplacebo @ 000001e109703580] [516] offset = ivec2(1, 3);
[libplacebo @ 000001e109703580] [517] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [518] if (d < _200b) {
[libplacebo @ 000001e109703580] [519] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [520] wsum += w;
[libplacebo @ 000001e109703580] [521] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [522] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [523] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [524] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [525] }
[libplacebo @ 000001e109703580] [526] idx = _200d * rel.y + rel.x + _200d * 6 + 5; 
[libplacebo @ 000001e109703580] [527] offset = ivec2(2, 3);
[libplacebo @ 000001e109703580] [528] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [529] if (d < _200b) {
[libplacebo @ 000001e109703580] [530] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [531] wsum += w;
[libplacebo @ 000001e109703580] [532] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [533] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [534] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [535] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [536] }
[libplacebo @ 000001e109703580] [537] idx = _200d * rel.y + rel.x + _200d * 6 + 6; 
[libplacebo @ 000001e109703580] [538] offset = ivec2(3, 3);
[libplacebo @ 000001e109703580] [539] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [540] if (d < _200b) {
[libplacebo @ 000001e109703580] [541] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [542] wsum += w;
[libplacebo @ 000001e109703580] [543] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [544] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [545] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [546] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [547] }
[libplacebo @ 000001e109703580] [548] idx = _200d * rel.y + rel.x + _200d * 6 + 7; 
[libplacebo @ 000001e109703580] [549] idx = _200d * rel.y + rel.x + _200d * 7 + 0; 
[libplacebo @ 000001e109703580] [550] idx = _200d * rel.y + rel.x + _200d * 7 + 1; 
[libplacebo @ 000001e109703580] [551] idx = _200d * rel.y + rel.x + _200d * 7 + 2; 
[libplacebo @ 000001e109703580] [552] idx = _200d * rel.y + rel.x + _200d * 7 + 3; 
[libplacebo @ 000001e109703580] [553] offset = ivec2(0, 4);
[libplacebo @ 000001e109703580] [554] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [555] if (d < _200b) {
[libplacebo @ 000001e109703580] [556] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [557] wsum += w;
[libplacebo @ 000001e109703580] [558] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [559] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [560] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [561] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [562] }
[libplacebo @ 000001e109703580] [563] idx = _200d * rel.y + rel.x + _200d * 7 + 4; 
[libplacebo @ 000001e109703580] [564] offset = ivec2(1, 4);
[libplacebo @ 000001e109703580] [565] d = length(vec2(offset) - fcoord);
[libplacebo @ 000001e109703580] [566] if (d < _200b) {
[libplacebo @ 000001e109703580] [567] w = _2006(d * 1.0 / _200b);
[libplacebo @ 000001e109703580] [568] wsum += w;
[libplacebo @ 000001e109703580] [569] c[0] = _200c_0[idx];
[libplacebo @ 000001e109703580] [570] c[1] = _200c_1[idx];
[libplacebo @ 000001e109703580] [571] color[0] += w * c[0];
[libplacebo @ 000001e109703580] [572] color[1] += w * c[1];
[libplacebo @ 000001e109703580] [573] }
[libplacebo @ 000001e109703580] [574] idx = _200d * rel.y + rel.x + _200d * 7 + 5; 
[libplacebo @ 000001e109703580] [575] idx = _200d * rel.y + rel.x + _200d * 7 + 6; 
[libplacebo @ 000001e109703580] [576] idx = _200d * rel.y + rel.x + _200d * 7 + 7; 
[libplacebo @ 000001e109703580] [577] color = _2005 / wsum * color;
[libplacebo @ 000001e109703580] [578] color.a = 1.0;
[libplacebo @ 000001e109703580] [579] }
[libplacebo @ 000001e109703580] [580] return color;
[libplacebo @ 000001e109703580] [581] }
[libplacebo @ 000001e109703580] [582] 
[libplacebo @ 000001e109703580] [583] shared uint _400c, _400d, _400e; 
[libplacebo @ 000001e109703580] [584] shared uint _400f[64]; 
[libplacebo @ 000001e109703580] [585] #define _4010 vec3(_4013, _4012, _4011) 
[libplacebo @ 000001e109703580] [586] void _4001() {
[libplacebo @ 000001e109703580] [587] vec4 color = vec4(_4003, vec2(_4002), 1.0);   
[libplacebo @ 000001e109703580] [588] // pass_read_image                        
[libplacebo @ 000001e109703580] [589] {                                         
[libplacebo @ 000001e109703580] [590] vec4 tmp;                                 
[libplacebo @ 000001e109703580] [591] tmp = _c001(); 
[libplacebo @ 000001e109703580] [592] color[0] = tmp[0];
[libplacebo @ 000001e109703580] [593] tmp = _2001(); 
[libplacebo @ 000001e109703580] [594] color[1] = tmp[0];
[libplacebo @ 000001e109703580] [595] color[2] = tmp[1];
[libplacebo @ 000001e109703580] [596] }
[libplacebo @ 000001e109703580] [597] // pl_shader_decode_color 
[libplacebo @ 000001e109703580] [598] { 
[libplacebo @ 000001e109703580] [599] color.rgb = _4004 * color.rgb + _4005; 
[libplacebo @ 000001e109703580] [600] }
[libplacebo @ 000001e109703580] [601] 
[libplacebo @ 000001e109703580] [602] {
[libplacebo @ 000001e109703580] [603] const uint wg_size = gl_WorkGroupSize.x * gl_WorkGroupSize.y;
[libplacebo @ 000001e109703580] [604] const uint wg_idx = gl_WorkGroupID.y * gl_NumWorkGroups.x + gl_WorkGroupID.x;
[libplacebo @ 000001e109703580] [605] const uint local_idx = gl_LocalInvocationIndex;
[libplacebo @ 000001e109703580] [606] const uint slice = wg_idx % uint(12);
[libplacebo @ 000001e109703580] [607] const uint hist_base = slice * uint(64);
[libplacebo @ 000001e109703580] [608] const vec4 color_orig = color;
[libplacebo @ 000001e109703580] [609] _400c = _400d = _400e = 0u;
[libplacebo @ 000001e109703580] [610] for (uint i = local_idx; i < uint(64); i += wg_size)
[libplacebo @ 000001e109703580] [611] _400f[i] = 0u;
[libplacebo @ 000001e109703580] [612] barrier();
[libplacebo @ 000001e109703580] [613] // pl_shader_linearize           
[libplacebo @ 000001e109703580] [614] color.rgb = max(color.rgb, 0.0); 
[libplacebo @ 000001e109703580] [615] color.rgb = pow(color.rgb, vec3(1.0/78.84375));         
[libplacebo @ 000001e109703580] [616] color.rgb = max(color.rgb - vec3(0.8359375), 0.0)        
[libplacebo @ 000001e109703580] [617]              / (vec3(18.8515625) - vec3(18.6875) * color.rgb); 
[libplacebo @ 000001e109703580] [618] color.rgb = pow(color.rgb, vec3(1.0/0.1593017578125));         
[libplacebo @ 000001e109703580] [619] color.rgb *= vec3(49.26108374384236);                            
[libplacebo @ 000001e109703580] [620] 
[libplacebo @ 000001e109703580] [621] float luma = dot(_4010, color.rgb);
[libplacebo @ 000001e109703580] [622] luma *= float(0.0203000009059906);
[libplacebo @ 000001e109703580] [623] luma = pow(clamp(luma, 0.0, 1.0), float(0.1593017578125));
[libplacebo @ 000001e109703580] [624] luma = (float(0.8359375) + float(18.8515625) * luma) /
[libplacebo @ 000001e109703580] [625] (1.0 + float(18.6875) * luma);
[libplacebo @ 000001e109703580] [626] luma = pow(luma, float(78.84375));
[libplacebo @ 000001e109703580] [627] luma *= smoothstep(0.0, _4014, luma);
[libplacebo @ 000001e109703580] [628] uint y_pq = uint(float(16383) * luma);
[libplacebo @ 000001e109703580] [629] 
[libplacebo @ 000001e109703580] [630] int bin = int(y_pq) >> 7;
[libplacebo @ 000001e109703580] [631] bin -= 64;
[libplacebo @ 000001e109703580] [632] bin = clamp(bin, 0, 63);
[libplacebo @ 000001e109703580] [633] 
[libplacebo @ 000001e109703580] [634] if (subgroupAllEqual(bin)) {
[libplacebo @ 000001e109703580] [635] if (subgroupElect())
[libplacebo @ 000001e109703580] [636] atomicAdd(_400f[bin], gl_SubgroupSize);
[libplacebo @ 000001e109703580] [637] } else {
[libplacebo @ 000001e109703580] [638] atomicAdd(_400f[bin], 1u);
[libplacebo @ 000001e109703580] [639] }
[libplacebo @ 000001e109703580] [640] uint group_sum = subgroupAdd(y_pq);
[libplacebo @ 000001e109703580] [641] uint group_max = subgroupMax(y_pq);
[libplacebo @ 000001e109703580] [642] uvec4 b = subgroupBallot(y_pq == 0u);
[libplacebo @ 000001e109703580] [643] if (subgroupElect()) {
[libplacebo @ 000001e109703580] [644] atomicAdd(_400c, group_sum);
[libplacebo @ 000001e109703580] [645] atomicMax(_400d, group_max);
[libplacebo @ 000001e109703580] [646] atomicAdd(_400e, subgroupBallotBitCount(b));
[libplacebo @ 000001e109703580] [647] }
[libplacebo @ 000001e109703580] [648] barrier();
[libplacebo @ 000001e109703580] [649] if (gl_LocalInvocationIndex == 0u)
[libplacebo @ 000001e109703580] [650] _400f[0] -= _400e;
[libplacebo @ 000001e109703580] [651] 
[libplacebo @ 000001e109703580] [652] for (uint i = local_idx; i < uint(64); i += wg_size)
[libplacebo @ 000001e109703580] [653] atomicAdd(frame_hist[hist_base + i], _400f[i]);
[libplacebo @ 000001e109703580] [654] 
[libplacebo @ 000001e109703580] [655] if (gl_LocalInvocationIndex == 0u) {
[libplacebo @ 000001e109703580] [656] uint num = wg_size - _400e;
[libplacebo @ 000001e109703580] [657] atomicAdd(frame_wg_count[slice], 1u);
[libplacebo @ 000001e109703580] [658] atomicAdd(frame_wg_active[slice], min(num, 1u));
[libplacebo @ 000001e109703580] [659] if (num > 0u) {
[libplacebo @ 000001e109703580] [660] atomicAdd(frame_sum_pq[slice], _400c / num);
[libplacebo @ 000001e109703580] [661] atomicMax(frame_max_pq[slice], _400d);
[libplacebo @ 000001e109703580] [662] }
[libplacebo @ 000001e109703580] [663] }
[libplacebo @ 000001e109703580] [664] color = color_orig;
[libplacebo @ 000001e109703580] [665] }
[libplacebo @ 000001e109703580] [666] ivec2 dir = ivec2(1, 1);
[libplacebo @ 000001e109703580] [667] ivec2 pos = _401f + dir * ivec2(gl_GlobalInvocationID).xy;
[libplacebo @ 000001e109703580] [668] vec2 fpos = _4015 * vec2(gl_GlobalInvocationID);
[libplacebo @ 000001e109703580] [669] if (fpos.x < 1.0 && fpos.y < 1.0) {
[libplacebo @ 000001e109703580] [670] imageStore(_401e, pos, color);
[libplacebo @ 000001e109703580] [671] }
[libplacebo @ 000001e109703580] [672] 
[libplacebo @ 000001e109703580] [673] }
[libplacebo @ 000001e109703580] [674] 
[libplacebo @ 000001e109703580] [675] void main() {
[libplacebo @ 000001e109703580] [676] _4001();
[libplacebo @ 000001e109703580] [677] }
[libplacebo @ 000001e109703580] Specialization constant values:
[libplacebo @ 000001e109703580]   constant_id=0: 0.500008
[libplacebo @ 000001e109703580]   constant_id=1: 0.062501
[libplacebo @ 000001e109703580]   constant_id=2: 64.000000
[libplacebo @ 000001e109703580]   constant_id=3: 64.000000
[libplacebo @ 000001e109703580]   constant_id=4: 0.001953
[libplacebo @ 000001e109703580]   constant_id=5: 0.996094
[libplacebo @ 000001e109703580]   constant_id=6: 3.099147
[libplacebo @ 000001e109703580]   constant_id=7: 24
[libplacebo @ 000001e109703580]   constant_id=8: 24
[libplacebo @ 000001e109703580]   constant_id=9: 0.000000
[libplacebo @ 000001e109703580]   constant_id=10: 0.059302
[libplacebo @ 000001e109703580]   constant_id=11: 0.677998
[libplacebo @ 000001e109703580]   constant_id=12: 0.262700
[libplacebo @ 000001e109703580]   constant_id=13: 0.010000
[hevc @ 000001e10981fc00] Decoded frame with POC 21.
[hevc @ 000001e1099869c0] Decoded frame with POC 19.
[hevc @ 000001e109a37a80] Decoded frame with POC 20.
[hevc @ 000001e109ae8b80] Decoded frame with POC 24.
[hevc @ 000001e10978db40] Decoded frame with POC 22.
[hevc @ 000001e10b7fe9c0] Decoded frame with POC 23.
[hevc @ 000001e10b8afa80] Decoded frame with POC 27.
[hevc @ 000001e10b960880] Decoded frame with POC 25.
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 68.003 ms translating SPIR-V
[libplacebo @ 000001e109703580] Spent 0.037 ms compiling shader
[libplacebo @ 000001e109703580] Spent 0.055 ms creating pipeline
[libplacebo @ 000001e109703580] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000001e109703580] (Re)creating 3840x1600x0 texture with format rgba16hf: src/renderer.c:2477
[libplacebo @ 000001e109703580] vertex shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000001e109703580] [ 11]     layout(offset=0) vec3 _6;
[libplacebo @ 000001e109703580] [ 12]     layout(offset=16) mat3 _5;
[libplacebo @ 000001e109703580] [ 13] };
[libplacebo @ 000001e109703580] [ 14] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 000001e109703580] [ 15] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 16] layout(location=0) in vec2 _9;
[libplacebo @ 000001e109703580] [ 17] layout(location=0) out vec2 _3;
[libplacebo @ 000001e109703580] [ 18] layout(location=1) in vec2 _a;
[libplacebo @ 000001e109703580] [ 19] void main() {
[libplacebo @ 000001e109703580] [ 20] _3 = _9;
[libplacebo @ 000001e109703580] [ 21] vec2 va_pos = _a; 
[libplacebo @ 000001e109703580] [ 22] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 000001e109703580] [ 23] }
[libplacebo @ 000001e109703580] fragment shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000001e109703580] [ 11]     layout(offset=0) vec3 _6;
[libplacebo @ 000001e109703580] [ 12]     layout(offset=16) mat3 _5;
[libplacebo @ 000001e109703580] [ 13] };
[libplacebo @ 000001e109703580] [ 14] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 000001e109703580] [ 15] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 16] layout(location=0) in vec2 _3;
[libplacebo @ 000001e109703580] [ 17] layout(location=0) out vec4 out_color;
[libplacebo @ 000001e109703580] [ 18] 
[libplacebo @ 000001e109703580] [ 19] vec4 _1() {
[libplacebo @ 000001e109703580] [ 20] // pl_shader_sample_direct                            
[libplacebo @ 000001e109703580] [ 21] vec4 color = vec4(_4) * textureLod(_2, _3, 0.0);   
[libplacebo @ 000001e109703580] [ 22] // pl_shader_encode_color 
[libplacebo @ 000001e109703580] [ 23] { 
[libplacebo @ 000001e109703580] [ 24] color.rgb = _5 * color.rgb + _6; 
[libplacebo @ 000001e109703580] [ 25] }
[libplacebo @ 000001e109703580] [ 26] return color;
[libplacebo @ 000001e109703580] [ 27] }
[libplacebo @ 000001e109703580] [ 28] 
[libplacebo @ 000001e109703580] [ 29] void main() {
[libplacebo @ 000001e109703580] [ 30] out_color = _1();
[libplacebo @ 000001e109703580] [ 31] }
[libplacebo @ 000001e109703580] Specialization constant values:
[libplacebo @ 000001e109703580]   constant_id=0: 1.000000
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 1.836 ms translating SPIR-V
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 1.906 ms translating SPIR-V
[libplacebo @ 000001e109703580] Spent 0.005 ms compiling shader
[libplacebo @ 000001e109703580] Spent 0.048 ms creating pipeline
[libplacebo @ 000001e109703580] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000001e109703580] LUT invalidated, regenerating..
[libplacebo @ 000001e109703580] Spent 20.152 ms generating shader LUT
[libplacebo @ 000001e109703580] Allocating 247680 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:533
[libplacebo @ 000001e109703580] Spent 0.636 ms allocating slab
[libplacebo @ 000001e109703580] Dithering to 10 bit depth
[libplacebo @ 000001e109703580] vertex shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 000001e109703580] [ 11] layout(constant_id=1) const float _7 = 1; 
[libplacebo @ 000001e109703580] [ 12] layout(constant_id=2) const float _8 = 1; 
[libplacebo @ 000001e109703580] [ 13] layout(constant_id=3) const float _9 = 1; 
[libplacebo @ 000001e109703580] [ 14] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 15] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 000001e109703580] [ 16] layout(location=0) in vec2 _d;
[libplacebo @ 000001e109703580] [ 17] layout(location=0) out vec2 _3;
[libplacebo @ 000001e109703580] [ 18] layout(location=1) in vec2 _e;
[libplacebo @ 000001e109703580] [ 19] void main() {
[libplacebo @ 000001e109703580] [ 20] _3 = _d;
[libplacebo @ 000001e109703580] [ 21] vec2 va_pos = _e; 
[libplacebo @ 000001e109703580] [ 22] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 000001e109703580] [ 23] }
[libplacebo @ 000001e109703580] fragment shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 000001e109703580] [ 11] layout(constant_id=1) const float _7 = 1; 
[libplacebo @ 000001e109703580] [ 12] layout(constant_id=2) const float _8 = 1; 
[libplacebo @ 000001e109703580] [ 13] layout(constant_id=3) const float _9 = 1; 
[libplacebo @ 000001e109703580] [ 14] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 15] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 000001e109703580] [ 16] layout(location=0) in vec2 _3;
[libplacebo @ 000001e109703580] [ 17] layout(location=0) out vec4 out_color;
[libplacebo @ 000001e109703580] [ 18] 
[libplacebo @ 000001e109703580] [ 19] #define _5(pos) (texelFetch(_6, ivec2(pos), 0).x)
[libplacebo @ 000001e109703580] [ 20] vec4 _1() {
[libplacebo @ 000001e109703580] [ 21] // pl_shader_sample_direct                            
[libplacebo @ 000001e109703580] [ 22] vec4 color = vec4(_4) * textureLod(_2, _3, 0.0);   
[libplacebo @ 000001e109703580] [ 23] // pl_shader_dither 
[libplacebo @ 000001e109703580] [ 24] {                    
[libplacebo @ 000001e109703580] [ 25] float bias;          
[libplacebo @ 000001e109703580] [ 26] vec2 pos = fract(gl_FragCoord.xy * 1.0/_7); 
[libplacebo @ 000001e109703580] [ 27] bias = _5(ivec2(pos * _8));
[libplacebo @ 000001e109703580] [ 28] const float scale = 1023.0; 
[libplacebo @ 000001e109703580] [ 29] color = scale * color + vec4(bias);   
[libplacebo @ 000001e109703580] [ 30] color = floor(color) * (1.0 / scale); 
[libplacebo @ 000001e109703580] [ 31] } 
[libplacebo @ 000001e109703580] [ 32] color *= vec4(1.0 / _9); 
[libplacebo @ 000001e109703580] [ 33] vec4 _a = color;                 
[libplacebo @ 000001e109703580] [ 34] color = vec4(0.0, 0.0, 0.0, 1.0); 
[libplacebo @ 000001e109703580] [ 35] color[0] = _a[0]; 
[libplacebo @ 000001e109703580] [ 36] return color;
[libplacebo @ 000001e109703580] [ 37] }
[libplacebo @ 000001e109703580] [ 38] 
[libplacebo @ 000001e109703580] [ 39] void main() {
[libplacebo @ 000001e109703580] [ 40] out_color = _1();
[libplacebo @ 000001e109703580] [ 41] }
[libplacebo @ 000001e109703580] Specialization constant values:
[libplacebo @ 000001e109703580]   constant_id=0: 1.000000
[libplacebo @ 000001e109703580]   constant_id=1: 64.000000
[libplacebo @ 000001e109703580]   constant_id=2: 64.000000
[libplacebo @ 000001e109703580]   constant_id=3: 1.000000
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 1.633 ms translating SPIR-V
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 2.243 ms translating SPIR-V
[libplacebo @ 000001e109703580] Spent 0.004 ms compiling shader
[libplacebo @ 000001e109703580] Spent 0.040 ms creating pipeline
[libplacebo @ 000001e109703580] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000001e109703580] LUT invalidated, regenerating..
[libplacebo @ 000001e109703580] Spent 0.001 ms generating shader LUT
[libplacebo @ 000001e109703580] (Re)creating 3840x801x0 texture with format rgba16hf: src/renderer.c:762
[libplacebo @ 000001e109703580] vertex shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000001e109703580] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 000001e109703580] [ 12] };
[libplacebo @ 000001e109703580] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 000001e109703580] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 000001e109703580] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 000001e109703580] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 000001e109703580] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 000001e109703580] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 000001e109703580] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 000001e109703580] [ 20] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 21] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 000001e109703580] [ 22] layout(location=0) in vec2 _12;
[libplacebo @ 000001e109703580] [ 23] layout(location=0) out vec2 _3;
[libplacebo @ 000001e109703580] [ 24] layout(location=1) in vec2 _13;
[libplacebo @ 000001e109703580] [ 25] void main() {
[libplacebo @ 000001e109703580] [ 26] _3 = _12;
[libplacebo @ 000001e109703580] [ 27] vec2 va_pos = _13; 
[libplacebo @ 000001e109703580] [ 28] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 000001e109703580] [ 29] }
[libplacebo @ 000001e109703580] fragment shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000001e109703580] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 000001e109703580] [ 12] };
[libplacebo @ 000001e109703580] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 000001e109703580] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 000001e109703580] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 000001e109703580] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 000001e109703580] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 000001e109703580] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 000001e109703580] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 000001e109703580] [ 20] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 21] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 000001e109703580] [ 22] layout(location=0) in vec2 _3;
[libplacebo @ 000001e109703580] [ 23] layout(location=0) out vec4 out_color;
[libplacebo @ 000001e109703580] [ 24] 
[libplacebo @ 000001e109703580] [ 25] #define _7(x) (_9 * (x) + _8) 
[libplacebo @ 000001e109703580] [ 26] #define _a(x) (_c * (x) + _b) 
[libplacebo @ 000001e109703580] [ 27] #define _5(pos) (textureLod(_6, vec2(\
[libplacebo @ 000001e109703580] [ 28]     _7(vec2(pos).x)\
[libplacebo @ 000001e109703580] [ 29]    ,_a(vec2(pos).y)\
[libplacebo @ 000001e109703580] [ 30]   ), 0.0).xyzw)
[libplacebo @ 000001e109703580] [ 31] vec4 _1() {
[libplacebo @ 000001e109703580] [ 32] 
[libplacebo @ 000001e109703580] [ 33] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000001e109703580] [ 34] {
[libplacebo @ 000001e109703580] [ 35] vec2 pos = _3, pt = _4;
[libplacebo @ 000001e109703580] [ 36] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 000001e109703580] [ 37] vec2 dir = vec2(float(0), float(1));
[libplacebo @ 000001e109703580] [ 38] pt *= dir;
[libplacebo @ 000001e109703580] [ 39] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 000001e109703580] [ 40] float fcoord = dot(fcoord2, dir);
[libplacebo @ 000001e109703580] [ 41] vec2 base = pos - fcoord * pt - pt * vec2(float(1));
[libplacebo @ 000001e109703580] [ 42] vec4 ws;
[libplacebo @ 000001e109703580] [ 43] float off;
[libplacebo @ 000001e109703580] [ 44] vec2 c, ca = vec2(0.0);
[libplacebo @ 000001e109703580] [ 45] #pragma unroll 4
[libplacebo @ 000001e109703580] [ 46] for (uint n = 0u; n < _d; n += uint(2)) {
[libplacebo @ 000001e109703580] [ 47] if (n % 4u == 0u)
[libplacebo @ 000001e109703580] [ 48] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 000001e109703580] [ 49] off = float(n);
[libplacebo @ 000001e109703580] [ 50] off += ws[n % 4u + 1u];
[libplacebo @ 000001e109703580] [ 51] c = textureLod(_2, base + pt * off, 0.0).gb;
[libplacebo @ 000001e109703580] [ 52] ca += ws[n % 4u] * c;
[libplacebo @ 000001e109703580] [ 53] }
[libplacebo @ 000001e109703580] [ 54] color.gb = _f * ca;
[libplacebo @ 000001e109703580] [ 55] }
[libplacebo @ 000001e109703580] [ 56] return color;
[libplacebo @ 000001e109703580] [ 57] }
[libplacebo @ 000001e109703580] [ 58] 
[libplacebo @ 000001e109703580] [ 59] void main() {
[libplacebo @ 000001e109703580] [ 60] out_color = _1();
[libplacebo @ 000001e109703580] [ 61] }
[libplacebo @ 000001e109703580] Specialization constant values:
[libplacebo @ 000001e109703580]   constant_id=0: 0.500000
[libplacebo @ 000001e109703580]   constant_id=1: 0.000000
[libplacebo @ 000001e109703580]   constant_id=2: 0.001953
[libplacebo @ 000001e109703580]   constant_id=3: 0.996094
[libplacebo @ 000001e109703580]   constant_id=4: 4
[libplacebo @ 000001e109703580]   constant_id=5: 0.000000
[libplacebo @ 000001e109703580]   constant_id=6: 1.000000
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 1.693 ms translating SPIR-V
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 4.096 ms translating SPIR-V
[libplacebo @ 000001e109703580] Spent 0.106 ms compiling shader
[libplacebo @ 000001e109703580] Spent 0.428 ms creating pipeline
[libplacebo @ 000001e109703580] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000001e109703580] LUT invalidated, regenerating..
[libplacebo @ 000001e109703580] Spent 0.001 ms generating shader LUT
[libplacebo @ 000001e109703580] vertex shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000001e109703580] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 000001e109703580] [ 12] };
[libplacebo @ 000001e109703580] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 000001e109703580] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 000001e109703580] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 000001e109703580] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 000001e109703580] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 000001e109703580] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 000001e109703580] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 000001e109703580] [ 20] layout(constant_id=7) const float _12 = 1; 
[libplacebo @ 000001e109703580] [ 21] layout(constant_id=8) const float _13 = 1; 
[libplacebo @ 000001e109703580] [ 22] layout(constant_id=9) const float _14 = 1; 
[libplacebo @ 000001e109703580] [ 23] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 24] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 000001e109703580] [ 25] layout(binding=2) uniform  sampler2D _11;
[libplacebo @ 000001e109703580] [ 26] layout(location=0) in vec2 _18;
[libplacebo @ 000001e109703580] [ 27] layout(location=0) out vec2 _3;
[libplacebo @ 000001e109703580] [ 28] layout(location=1) in vec2 _19;
[libplacebo @ 000001e109703580] [ 29] void main() {
[libplacebo @ 000001e109703580] [ 30] _3 = _18;
[libplacebo @ 000001e109703580] [ 31] vec2 va_pos = _19; 
[libplacebo @ 000001e109703580] [ 32] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 000001e109703580] [ 33] }
[libplacebo @ 000001e109703580] fragment shader source:
[libplacebo @ 000001e109703580] [  1] #version 450
[libplacebo @ 000001e109703580] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 000001e109703580] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 000001e109703580] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 000001e109703580] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 000001e109703580] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 000001e109703580] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 000001e109703580] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 000001e109703580] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000001e109703580] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000001e109703580] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 000001e109703580] [ 12] };
[libplacebo @ 000001e109703580] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 000001e109703580] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 000001e109703580] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 000001e109703580] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 000001e109703580] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 000001e109703580] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 000001e109703580] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 000001e109703580] [ 20] layout(constant_id=7) const float _12 = 1; 
[libplacebo @ 000001e109703580] [ 21] layout(constant_id=8) const float _13 = 1; 
[libplacebo @ 000001e109703580] [ 22] layout(constant_id=9) const float _14 = 1; 
[libplacebo @ 000001e109703580] [ 23] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 000001e109703580] [ 24] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 000001e109703580] [ 25] layout(binding=2) uniform  sampler2D _11;
[libplacebo @ 000001e109703580] [ 26] layout(location=0) in vec2 _3;
[libplacebo @ 000001e109703580] [ 27] layout(location=0) out vec4 out_color;
[libplacebo @ 000001e109703580] [ 28] 
[libplacebo @ 000001e109703580] [ 29] #define _7(x) (_9 * (x) + _8) 
[libplacebo @ 000001e109703580] [ 30] #define _a(x) (_c * (x) + _b) 
[libplacebo @ 000001e109703580] [ 31] #define _5(pos) (textureLod(_6, vec2(\
[libplacebo @ 000001e109703580] [ 32]     _7(vec2(pos).x)\
[libplacebo @ 000001e109703580] [ 33]    ,_a(vec2(pos).y)\
[libplacebo @ 000001e109703580] [ 34]   ), 0.0).xyzw)
[libplacebo @ 000001e109703580] [ 35] #define _10(pos) (texelFetch(_11, ivec2(pos), 0).x)
[libplacebo @ 000001e109703580] [ 36] vec4 _1() {
[libplacebo @ 000001e109703580] [ 37] 
[libplacebo @ 000001e109703580] [ 38] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000001e109703580] [ 39] {
[libplacebo @ 000001e109703580] [ 40] vec2 pos = _3, pt = _4;
[libplacebo @ 000001e109703580] [ 41] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 000001e109703580] [ 42] vec2 dir = vec2(float(1), float(0));
[libplacebo @ 000001e109703580] [ 43] pt *= dir;
[libplacebo @ 000001e109703580] [ 44] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 000001e109703580] [ 45] float fcoord = dot(fcoord2, dir);
[libplacebo @ 000001e109703580] [ 46] vec2 base = pos - fcoord * pt - pt * vec2(float(1));
[libplacebo @ 000001e109703580] [ 47] vec4 ws;
[libplacebo @ 000001e109703580] [ 48] float off;
[libplacebo @ 000001e109703580] [ 49] vec2 c, ca = vec2(0.0);
[libplacebo @ 000001e109703580] [ 50] #pragma unroll 4
[libplacebo @ 000001e109703580] [ 51] for (uint n = 0u; n < _d; n += uint(2)) {
[libplacebo @ 000001e109703580] [ 52] if (n % 4u == 0u)
[libplacebo @ 000001e109703580] [ 53] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 000001e109703580] [ 54] off = float(n);
[libplacebo @ 000001e109703580] [ 55] off += ws[n % 4u + 1u];
[libplacebo @ 000001e109703580] [ 56] c = textureLod(_2, base + pt * off, 0.0).gb;
[libplacebo @ 000001e109703580] [ 57] ca += ws[n % 4u] * c;
[libplacebo @ 000001e109703580] [ 58] }
[libplacebo @ 000001e109703580] [ 59] color.gb = _f * ca;
[libplacebo @ 000001e109703580] [ 60] }
[libplacebo @ 000001e109703580] [ 61] // pl_shader_dither 
[libplacebo @ 000001e109703580] [ 62] {                    
[libplacebo @ 000001e109703580] [ 63] float bias;          
[libplacebo @ 000001e109703580] [ 64] vec2 pos = fract(gl_FragCoord.xy * 1.0/_12); 
[libplacebo @ 000001e109703580] [ 65] bias = _10(ivec2(pos * _13));
[libplacebo @ 000001e109703580] [ 66] const float scale = 1023.0; 
[libplacebo @ 000001e109703580] [ 67] color = scale * color + vec4(bias);   
[libplacebo @ 000001e109703580] [ 68] color = floor(color) * (1.0 / scale); 
[libplacebo @ 000001e109703580] [ 69] } 
[libplacebo @ 000001e109703580] [ 70] color *= vec4(1.0 / _14); 
[libplacebo @ 000001e109703580] [ 71] vec4 _15 = color;                 
[libplacebo @ 000001e109703580] [ 72] color = vec4(0.0, 0.0, 0.0, 1.0); 
[libplacebo @ 000001e109703580] [ 73] color[0] = _15[1]; 
[libplacebo @ 000001e109703580] [ 74] color[1] = _15[2]; 
[libplacebo @ 000001e109703580] [ 75] return color;
[libplacebo @ 000001e109703580] [ 76] }
[libplacebo @ 000001e109703580] [ 77] 
[libplacebo @ 000001e109703580] [ 78] void main() {
[libplacebo @ 000001e109703580] [ 79] out_color = _1();
[libplacebo @ 000001e109703580] [ 80] }
[libplacebo @ 000001e109703580] Specialization constant values:
[libplacebo @ 000001e109703580]   constant_id=0: 0.500000
[libplacebo @ 000001e109703580]   constant_id=1: 0.000000
[libplacebo @ 000001e109703580]   constant_id=2: 0.001953
[libplacebo @ 000001e109703580]   constant_id=3: 0.996094
[libplacebo @ 000001e109703580]   constant_id=4: 4
[libplacebo @ 000001e109703580]   constant_id=5: 0.000000
[libplacebo @ 000001e109703580]   constant_id=6: 1.000000
[libplacebo @ 000001e109703580]   constant_id=7: 64.000000
[libplacebo @ 000001e109703580]   constant_id=8: 64.000000
[libplacebo @ 000001e109703580]   constant_id=9: 1.000000
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 1.774 ms translating SPIR-V
[libplacebo @ 000001e109703580] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000001e109703580] Spent 5.022 ms translating SPIR-V
[libplacebo @ 000001e109703580] Spent 0.006 ms compiling shader
[libplacebo @ 000001e109703580] Spent 0.383 ms creating pipeline
[libplacebo @ 000001e109703580] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[hevc_qsv @ 000001e109b8a680] Encoder: input is system memory surface
[hevc_qsv @ 000001e109b8a680] Use Intel(R) oneVPL to create MFX session, the required implementation version is 1.1
[hevc_qsv @ 000001e109b8a680] Initialized an internal MFX session using hardware accelerated implementation
[hevc_qsv @ 000001e109b8a680] Using the intelligent constant quality (ICQ) ratecontrol method
[hevc_qsv @ 000001e109b8a680] profile: hevc main10; level: 307
[hevc_qsv @ 000001e109b8a680] GopPicSize: 120; GopRefDist: 8; GopOptFlag: closed; IdrInterval: 1
[hevc_qsv @ 000001e109b8a680] TargetUsage: 1; RateControlMethod: ICQ
[hevc_qsv @ 000001e109b8a680] ICQQuality: 14
[hevc_qsv @ 000001e109b8a680] NumSlice: 1; NumRefFrame: 4
[hevc_qsv @ 000001e109b8a680] RateDistortionOpt: unknown
[hevc_qsv @ 000001e109b8a680] RecoveryPointSEI: unknown
[hevc_qsv @ 000001e109b8a680] VDENC: ON
[hevc_qsv @ 000001e109b8a680] NalHrdConformance: OFF; VuiNalHrdParameters: OFF
[hevc_qsv @ 000001e109b8a680] FrameRateExtD: 1001; FrameRateExtN: 24000 
[hevc_qsv @ 000001e109b8a680] IntRefType: 0; IntRefCycleSize: 0; IntRefQPDelta: 0
[hevc_qsv @ 000001e109b8a680] MaxFrameSize: 0; MaxSliceSize: 0
[hevc_qsv @ 000001e109b8a680] BitrateLimit: unknown; MBBRC: OFF; ExtBRC: OFF
[hevc_qsv @ 000001e109b8a680] Trellis: auto
[hevc_qsv @ 000001e109b8a680] RepeatPPS: OFF; NumMbPerSlice: 0; LookAheadDS: unknown
[hevc_qsv @ 000001e109b8a680] AdaptiveI: unknown; AdaptiveB: unknown; BRefType:pyramid
[hevc_qsv @ 000001e109b8a680] MinQPI: 22; MaxQPI: 63; MinQPP: 22; MaxQPP: 63; MinQPB: 22; MaxQPB: 63
[hevc_qsv @ 000001e109b8a680] DisableDeblockingIdc: 0 
[hevc_qsv @ 000001e109b8a680] SkipFrame: no_skip
[hevc_qsv @ 000001e109b8a680] PRefType: default
[hevc_qsv @ 000001e109b8a680] GPB: ON
[hevc_qsv @ 000001e109b8a680] TransformSkip: ON 
[hevc_qsv @ 000001e109b8a680] IntRefCycleDist: 0
[hevc_qsv @ 000001e109b8a680] LowDelayBRC: OFF
[hevc_qsv @ 000001e109b8a680] MaxFrameSizeI: 0; MaxFrameSizeP: 0
[hevc_qsv @ 000001e109b8a680] ScenarioInfo: 3
[hevc_qsv @ 000001e109b8a680] NumTileColumns: 1; NumTileRows: 1
[hevc_metadata @ 000001e10284f240] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000001e10284f240] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000001e10284f240] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
Output #0, hevc, to 'Placebo_Out.h265':
  Metadata:
    encoder         : Lavf60.20.100
  Stream #0:0, 0, 1001/24000: Video: hevc, 1 reference frame, p010le(tv, bt2020nc/bt2020/smpte2084, progressive, topleft), 3840x1600 (0x0) [SAR 1:1 DAR 12:5], 0/1, q=2-31, 1000 kb/s, 23.98 fps, 23.98 tbn
      Metadata:
        encoder         : Lavc60.39.100 hevc_qsv
      Side data:
        cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: N/A
[out#0/hevc @ 000001e100ee7a00] Starting thread...
[out#0/hevc @ 000001e100ee7a00] sq: send 0 ts 0.0417083
[out#0/hevc @ 000001e100ee7a00] sq: 0 frames_max 1 reached
[out#0/hevc @ 000001e100ee7a00] sq: finish 0; head ts 0.0417083
[out#0/hevc @ 000001e100ee7a00] sq: finish queue
[out#0/hevc @ 000001e100ee7a00] sq: receive 0 ts 0.0417083 queue head 0 ts 0.0417083
[vf#0:0 @ 000001e10b69c040] All consumers returned EOF
[libplacebo @ 000001e109703580] Waiting for remaining commands...
[vost#0:0/hevc_qsv @ 000001e109731d00] Encoder thread received EOF
[libplacebo @ 000001e109703580] Memory heaps supported by device:
[libplacebo @ 000001e109703580]     0: flags 0x1 size 5800M
[libplacebo @ 000001e109703580]     1: flags 0x0 size   31G
[libplacebo @ 000001e109703580]     2: flags 0x1 size  256M
[libplacebo @ 000001e109703580] Memory types supported by device:
[libplacebo @ 000001e109703580]     0: flags 0x1 heap 0
[libplacebo @ 000001e109703580]     1: flags 0x6 heap 1
[libplacebo @ 000001e109703580]     2: flags 0xe heap 1
[libplacebo @ 000001e109703580]     3: flags 0x7 heap 2
[libplacebo @ 000001e109703580] Memory pool 0:
[libplacebo @ 000001e109703580]     Compatible types: 0xf
[libplacebo @ 000001e109703580]     Optimal flags: 0x1
[libplacebo @ 000001e109703580]     Slab  0:        f x   16M:     0 used     0 res   64M alloc from heap 0, efficiency 100.00%  [../src/utils/upload.c:356]
[libplacebo @ 000001e109703580]     Slab  1:        f x 4084K:     0 used     0 res   15M alloc from heap 0, efficiency 100.00%  [../src/utils/upload.c:245]
[libplacebo @ 000001e109703580]     Slab  2:       ff x 8704K:     0 used     0 res   68M alloc from heap 0, efficiency 100.00%  [src/renderer.c:1647]
[libplacebo @ 000001e109703580]     Slab  3:       ff x   32K:     0 used     0 res  256K alloc from heap 0, efficiency 100.00%  [src/shaders/sampling.c:1007]
[libplacebo @ 000001e109703580]     Slab  4:        f x   46M:     0 used     0 res  187M alloc from heap 0, efficiency 100.00%  [src/renderer.c:762]
[libplacebo @ 000001e109703580]     Pool summary:     0 used     0 res  335M alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 000001e109703580] Memory pool 1:
[libplacebo @ 000001e109703580]     Compatible types: 0xffffffff
[libplacebo @ 000001e109703580]     Required flags: 0x1
[libplacebo @ 000001e109703580]     Optimal flags: 0x2
[libplacebo @ 000001e109703580]     Buffer flags: 0xc3
[libplacebo @ 000001e109703580]     Slab  0: 3fffffffffffffff x  4224:     0 used     0 res  255K alloc from heap 2, efficiency 100.00%  [../src/gpu/utils.c:1160]
[libplacebo @ 000001e109703580]     Pool summary:     0 used     0 res  255K alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 000001e109703580] Memory pool 2:
[libplacebo @ 000001e109703580]     Compatible types: 0xffffffff
[libplacebo @ 000001e109703580]     Optimal flags: 0x3
[libplacebo @ 000001e109703580]     Buffer flags: 0x3
[libplacebo @ 000001e109703580]     Slab  0: 3fffffffffffffff x  4224:     0 used     0 res  255K alloc from heap 2, efficiency 100.00%  [../src/gpu/utils.c:533]
[libplacebo @ 000001e109703580]     Slab  1:     7fff x   16K:     0 used     0 res  241K alloc from heap 2, efficiency 100.00%  [../src/gpu/utils.c:533]
[libplacebo @ 000001e109703580]     Pool summary:     0 used     0 res  497K alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 000001e109703580] Memory pool 3:
[libplacebo @ 000001e109703580]     Compatible types: 0xffffffff
[libplacebo @ 000001e109703580]     Required flags: 0x3
[libplacebo @ 000001e109703580]     Optimal flags: 0xa
[libplacebo @ 000001e109703580]     Buffer flags: 0x23
[libplacebo @ 000001e109703580]     Slab  0: 3fffffffffffffff x  4224:     0 used     0 res  255K alloc from heap 2, efficiency 100.00%  [src/shaders/colorspace.c:1247]
[libplacebo @ 000001e109703580]     Pool summary:     0 used     0 res  255K alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 000001e109703580] Memory summary:     0 used     0 res  336M alloc, efficiency 100.00%, utilization 0.00%, max page:  362M
[libplacebo @ 000001e109703580] Freeing slab of size   64M
[libplacebo @ 000001e109703580] Freeing slab of size   15M
[libplacebo @ 000001e109703580] Freeing slab of size   68M
[libplacebo @ 000001e109703580] Freeing slab of size  256K
[libplacebo @ 000001e109703580] Freeing slab of size  187M
[libplacebo @ 000001e109703580] Freeing slab of size  255K
    Last message repeated 1 times
[libplacebo @ 000001e109703580] Freeing slab of size  241K
[libplacebo @ 000001e109703580] Freeing slab of size  255K
[out#0/hevc @ 000001e100ee7a00] sq: 0 EOF
[out#0/hevc @ 000001e100ee7a00] sq: finish queue
[vf#0:0 @ 000001e10b69c040] Terminating thread with return code 0 (success)
[vist#0:0/hevc @ 000001e102852ec0] [dec:hevc @ 000001e1097bf240] Decoder returned EOF, finishing
[vist#0:0/hevc @ 000001e102852ec0] [dec:hevc @ 000001e1097bf240] Terminating thread with return code 0 (success)
[vist#0:0/hevc @ 000001e102852ec0] All consumers of this stream are done
[in#0/hevc @ 000001e100ee9840] All consumers are done
[in#0/hevc @ 000001e100ee9840] Terminating thread with return code 0 (success)
[vost#0:0/hevc_qsv @ 000001e109731d00] Terminating thread with return code 0 (success)
[hevc_metadata @ 000001e10284f240] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000001e10284f240] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000001e10284f240] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000001e10284f240] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
    Last message repeated 1 times
[hevc_metadata @ 000001e10284f240] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
[out#0/hevc @ 000001e100ee7a00] All streams finished
[out#0/hevc @ 000001e100ee7a00] Terminating thread with return code 0 (success)
[AVIOContext @ 000001e109815f80] Statistics: 901267 bytes written, 0 seeks, 4 writeouts
[out#0/hevc @ 000001e100ee7a00] Output file #0 (Placebo_Out.h265):
[out#0/hevc @ 000001e100ee7a00]   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (901267 bytes); 
[out#0/hevc @ 000001e100ee7a00]   Total: 1 packets (901267 bytes) muxed
[out#0/hevc @ 000001e100ee7a00] video:880KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.000000%
frame=    1 fps=0.8 q=-0.0 Lsize=     880KiB time=-00:00:00.12 bitrate=N/A speed=N/A    
[in#0/hevc @ 000001e100ee9840] Input file #0 (Input_BL.h265):
[in#0/hevc @ 000001e100ee9840]   Input stream #0:0 (video): 36 packets read (12858308 bytes); 11 frames decoded; 0 decode errors; 
[in#0/hevc @ 000001e100ee9840]   Total: 36 packets (12858308 bytes) demuxed
[AVIOContext @ 000001e100eee8c0] Statistics: 12877824 bytes read, 0 seeks

@mightyhuhn
Copy link

mightyhuhn commented Feb 15, 2024

my next idea was to run a black clipping test file with video-output-levels=limited and disable dithering.
to see if it adds an tint here to where it technically kinda is lossless. but gpu-next does ignore such a flag for screenshots and using full screen also didn't work because it just clips btb.

edit: did a lot more tests mostly with different dithering and limited range:
gpu doesn't care about dithering when making screenshots... making this very hard to test.
limited range no dither and 6 bit and hell broke loose the error can be very very big with these settings

fbo-format=rgba32f full range 6 bit no dither option defined make is very hard to see the difference on a histogram:
63gpu-next
63gpu

@natural-harmonia-gropius

Input: Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9] // HDR10 BL

Greenish happens to dovi, not other things about ycbcr or rgb.

default
image
vf=format:dolbyvision=no
image

@haasn
Copy link
Owner

haasn commented Feb 17, 2024

Greenish happens to dovi, not other things about ycbcr or rgb.

@Chipcraft's file is not dovi

@Chipcraft
Copy link
Author

Chipcraft commented Feb 17, 2024

Yes, it is the base layer only.

Looking at frames in Resolve, any idea why G would in fact be the only one intact, while R and B are the ones with the differences?

libplacebo

Parade_Placebo

lavfilter

Parade_Lav

@haasn
Copy link
Owner

haasn commented Feb 18, 2024

I you look closely, the green channel is also very slightly off, but in the opposite direction.

Considering the green channel is usually the luma channel minus the red and blue offsets (times some small-ish scaling factor), this makes perfect sense.

So wait, could you clarify, @Chipcraft, is this a DV profile 5 source file?

@Chipcraft
Copy link
Author

Chipcraft commented Feb 18, 2024

So wait, could you clarify, @Chipcraft, is this a DV profile 5 source file?

The movie itself has P7 FEL however, libplacebo is only used on the base level bitstream (no EL or RPU). The EL is on a separate file at this point, not even in the same container. Also, "apply_dolbyvision" 0/1 obviously makes no difference here, I've checked that as well.

@Chipcraft
Copy link
Author

Here is another sample. The source is 8K yuv420p10le(tv, bt2020nc/bt2020/smpte2084) AV1. From here: https://www.youtube.com/watch?v=OdYsO1FAFQk

Here is one frame extracted (copy) from it (I frame at 00:02:55); https://nle-chipcraft.com/Git/Georgia/Georgia_1F.obu

An encode, with crop done by lavfilters: https://nle-chipcraft.com/Git/Georgia/Georgia_LAV.mkv

ffmpeg -init_hw_device vulkan -i Georgia_1F.obu -bsf:v hevc_metadata=chroma_sample_loc_type=2 -vf crop=7680:4316:0:2 -c:v hevc_qsv -preset veryslow -scenario archive -global_quality 14 -profile:v main10 -level:v 61 -tier high -flags +cgop -g 120 -pix_fmt p010le -loglevel debug Georgia_LAV.mkv

Debug log

ffmpeg version N-113620-g3be80ce299 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 13.2.0 (Rev4, Built by MSYS2 project)
configuration: --enable-libvpl --enable-libdav1d --enable-libplacebo --enable-gpl --enable-nonfree --cpu=x86-64-v3 --extra-libs=-lstdc++
libavutil 58. 36.101 / 58. 36.101
libavcodec 60. 39.100 / 60. 39.100
libavformat 60. 20.100 / 60. 20.100
libavdevice 60. 4.100 / 60. 4.100
libavfilter 9. 17.100 / 9. 17.100
libswscale 7. 6.100 / 7. 6.100
libswresample 4. 13.100 / 4. 13.100
libpostproc 57. 4.100 / 57. 4.100
Splitting the commandline.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'vulkan'.
Reading option '-i' ... matched as output url with argument 'Georgia_1F.obu'.
Reading option '-bsf:v' ... matched as option 'bsf' (A comma-separated list of bitstream filters) with argument 'hevc_metadata=chroma_sample_loc_type=2'.
Reading option '-vf' ... matched as option 'vf' (alias for -filter:v (apply filters to video streams)) with argument 'crop=7680:4316:0:2'.
Reading option '-c:v' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'hevc_qsv'.
Reading option '-preset' ... matched as AVOption 'preset' with argument 'veryslow'.
Reading option '-scenario' ... matched as AVOption 'scenario' with argument 'archive'.
Reading option '-global_quality' ... matched as AVOption 'global_quality' with argument '14'.
Reading option '-profile:v' ... matched as option 'profile' (set profile) with argument 'main10'.
Reading option '-level:v' ... matched as AVOption 'level:v' with argument '61'.
Reading option '-tier' ... matched as AVOption 'tier' with argument 'high'.
Reading option '-flags' ... matched as AVOption 'flags' with argument '+cgop'.
Reading option '-g' ... matched as AVOption 'g' with argument '120'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'p010le'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option 'Georgia_LAV.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option init_hw_device (initialise hardware device) with argument vulkan.
[AVHWDeviceContext @ 0000022bd5e4e5c0] Supported validation layers:
[AVHWDeviceContext @ 0000022bd5e4e5c0] VK_LAYER_VALVE_steam_overlay
[AVHWDeviceContext @ 0000022bd5e4e5c0] VK_LAYER_VALVE_steam_fossilize
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using instance extension VK_KHR_portability_enumeration
[AVHWDeviceContext @ 0000022bd5e4e5c0] GPU listing:
[AVHWDeviceContext @ 0000022bd5e4e5c0] 0: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 0000022bd5e4e5c0] Device 0 selected: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 0000022bd5e4e5c0] Queue families:
[AVHWDeviceContext @ 0000022bd5e4e5c0] 0: graphics compute transfer sparse (queues: 1)
[AVHWDeviceContext @ 0000022bd5e4e5c0] 1: compute (queues: 1)
[AVHWDeviceContext @ 0000022bd5e4e5c0] 2: transfer (queues: 1)
[AVHWDeviceContext @ 0000022bd5e4e5c0] 3: decode (queues: 2)
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_push_descriptor
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_sampler_ycbcr_conversion
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_EXT_descriptor_buffer
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_EXT_shader_atomic_float
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_EXT_external_memory_host
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_external_memory_win32
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_external_semaphore_win32
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_video_queue
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_video_decode_queue
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_video_decode_h264
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device extension VK_KHR_video_decode_h265
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using device: Intel(R) Arc(TM) A380 Graphics
[AVHWDeviceContext @ 0000022bd5e4e5c0] Alignments:
[AVHWDeviceContext @ 0000022bd5e4e5c0] optimalBufferCopyRowPitchAlignment: 64
[AVHWDeviceContext @ 0000022bd5e4e5c0] minMemoryMapAlignment: 64
[AVHWDeviceContext @ 0000022bd5e4e5c0] nonCoherentAtomSize: 1
[AVHWDeviceContext @ 0000022bd5e4e5c0] minImportedHostPointerAlignment: 4096
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using queue family 0 (queues: 1) for graphics
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using queue family 1 (queues: 1) for compute
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using queue family 2 (queues: 1) for transfers
[AVHWDeviceContext @ 0000022bd5e4e5c0] Using queue family 3 (queues: 2) for decode
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url Georgia_1F.obu.
Successfully parsed a group of options.
Opening an input file: Georgia_1F.obu.
[AVFormatContext @ 0000022bd467dd40] Opening 'Georgia_1F.obu' for reading
[file @ 0000022bd467e1c0] Setting default whitelist 'file,crypto,data'
[obu @ 0000022bd467dd40] Format obu probed with size=2048 and score=51
[obu @ 0000022bd467dd40] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[libdav1d @ 0000022bd467e800] libdav1d 1.3.0-89-g08051a3
[libdav1d @ 0000022bd467e800] Using 1 threads, 0 max_frame_delay
[av1_frame_merge @ 0000022bd5e4f780] Frame 0: size 7680x4320 upscaled 7680 render 7680x4320 subsample 2x2 bitdepth 10 tiles 4x8.
Last message repeated 1 times
[libdav1d @ 0000022bd467e800] Frame 0: size 7680x4320 upscaled 7680 render 7680x4320 subsample 2x2 bitdepth 10 tiles 4x8.
[extract_extradata @ 0000022bd5e4f8c0] obu_type: 2, temporal_id: 0, spatial_id: 0, payload size: 0
[extract_extradata @ 0000022bd5e4f8c0] obu_type: 1, temporal_id: 0, spatial_id: 0, payload size: 15
[extract_extradata @ 0000022bd5e4f8c0] obu_type: 6, temporal_id: 0, spatial_id: 0, payload size: 834342
[obu @ 0000022bd467dd40] After avformat_find_stream_info() pos: 834365 bytes read:834365 seeks:0 frames:1
Input #0, obu, from 'Georgia_1F.obu':
Duration: N/A, bitrate: N/A
Stream #0:0, 1, 1/1200000: Video: av1 (libdav1d) (Main), 1 reference frame, yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 7680x4320 (0x0) [SAR 1:1 DAR 16:9], 0/1, 25 fps, 1200k tbr, 1200k tbn
Successfully opened the file.
Parsing a group of options: output url Georgia_LAV.mkv.
Applying option bsf:v (A comma-separated list of bitstream filters) with argument hevc_metadata=chroma_sample_loc_type=2.
Applying option vf (alias for -filter:v (apply filters to video streams)) with argument crop=7680:4316:0:2.
Applying option c:v (select encoder/decoder ('copy' to copy stream without reencoding)) with argument hevc_qsv.
Applying option profile:v (set profile) with argument main10.
Applying option pix_fmt (set pixel format) with argument p010le.
Successfully parsed a group of options.
Opening an output file: Georgia_LAV.mkv.
[out#0/matroska @ 0000022bd4676f80] No explicit maps, mapping streams automatically...
[vost#0:0/hevc_qsv @ 0000022bd5e51440] Created video stream from input stream 0:0
[h265_metadata_bsf @ 0000022bd5e53a00] Setting 'chroma_sample_loc_type' to value '2'
[AVFilterGraph @ 0000022bd467d0c0] Setting 'out_w' to value '7680'
[AVFilterGraph @ 0000022bd467d0c0] Setting 'out_h' to value '4316'
[AVFilterGraph @ 0000022bd467d0c0] Setting 'x' to value '0'
[AVFilterGraph @ 0000022bd467d0c0] Setting 'y' to value '2'
[libdav1d @ 0000022bd5e62580] libdav1d 1.3.0-89-g08051a3
[libdav1d @ 0000022bd5e62580] Using 0 threads, 0 max_frame_delay
[file @ 0000022bd5e7dd40] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (av1 (libdav1d) -> hevc (hevc_qsv))
[vost#0:0/hevc_qsv @ 0000022bd5e51440] Starting thread...
[vf#0:0 @ 0000022bd5e53bc0] Starting thread...
[vist#0:0/av1 @ 0000022bdcbfbc80] [dec:libdav1d @ 0000022bd5e54c00] Starting thread...
[in#0/obu @ 0000022bd467da40] Starting thread...
Press [q] to stop, [?] for help
[in#0/obu @ 0000022bd467da40] EOF while reading input
[in#0/obu @ 0000022bd467da40] Terminating thread with return code 0 (success)
[vist#0:0/av1 @ 0000022bdcbfbc80] [dec:libdav1d @ 0000022bd5e54c00] Decoder thread received EOF packet
[vist#0:0/av1 @ 0000022bdcbfbc80] [dec:libdav1d @ 0000022bd5e54c00] Decoder returned EOF, finishing
[vist#0:0/av1 @ 0000022bdcbfbc80] [dec:libdav1d @ 0000022bd5e54c00] Terminating thread with return code 0 (success)
[AVFilterGraph @ 0000022bd467d0c0] Setting 'out_w' to value '7680'
[AVFilterGraph @ 0000022bd467d0c0] Setting 'out_h' to value '4316'
[AVFilterGraph @ 0000022bd467d0c0] Setting 'x' to value '0'
[AVFilterGraph @ 0000022bd467d0c0] Setting 'y' to value '2'
detected 64 logical cores
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] Setting 'video_size' to value '7680x4320'
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] Setting 'pix_fmt' to value '62'
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] Setting 'time_base' to value '1/1200000'
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] Setting 'colorspace' to value '9'
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] Setting 'range' to value '1'
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] Setting 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] w:7680 h:4320 pixfmt:yuv420p10le tb:1/1200000 fr:25/1 sar:1/1 csp:bt2020nc range:tv
[format @ 0000022bdcf7ea00] Setting 'pix_fmts' to value 'p010le'
[auto_scale_0 @ 0000022bdcf7f9c0] w:iw h:ih flags:'' interl:0
[format @ 0000022bdcf7ea00] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_crop_0' and the filter 'format'
[AVFilterGraph @ 0000022bd467d0c0] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[Parsed_crop_0 @ 0000022bd5e7ecc0] w:7680 h:4320 sar:1/1 -> w:7680 h:4316 sar:1/1
[auto_scale_0 @ 0000022bdcf7f9c0] w:7680 h:4316 fmt:yuv420p10le csp:bt2020nc range:tv sar:1/1 -> w:7680 h:4316 fmt:p010le csp:bt2020nc range:tv sar:1/1 flags:0x00000004
[graph 0 input from stream 0:0 @ 0000022bd5e4e200] video frame properties congruent with link at pts_time: 0
[hevc_qsv @ 0000022bd5e51700] Encoder: input is system memory surface
[hevc_qsv @ 0000022bd5e51700] Use Intel(R) oneVPL to create MFX session, the required implementation version is 1.1
[hevc_qsv @ 0000022bd5e51700] Initialized an internal MFX session using hardware accelerated implementation
[hevc_qsv @ 0000022bd5e51700] Using the intelligent constant quality (ICQ) ratecontrol method
[hevc_qsv @ 0000022bd5e51700] profile: hevc main10; level: 317
[hevc_qsv @ 0000022bd5e51700] GopPicSize: 120; GopRefDist: 8; GopOptFlag: closed; IdrInterval: 1
[hevc_qsv @ 0000022bd5e51700] TargetUsage: 1; RateControlMethod: ICQ
[hevc_qsv @ 0000022bd5e51700] ICQQuality: 14
[hevc_qsv @ 0000022bd5e51700] NumSlice: 1; NumRefFrame: 4
[hevc_qsv @ 0000022bd5e51700] RateDistortionOpt: unknown
[hevc_qsv @ 0000022bd5e51700] RecoveryPointSEI: unknown
[hevc_qsv @ 0000022bd5e51700] VDENC: ON
[hevc_qsv @ 0000022bd5e51700] NalHrdConformance: OFF; VuiNalHrdParameters: OFF
[hevc_qsv @ 0000022bd5e51700] FrameRateExtD: 1; FrameRateExtN: 25
[hevc_qsv @ 0000022bd5e51700] IntRefType: 0; IntRefCycleSize: 0; IntRefQPDelta: 0
[hevc_qsv @ 0000022bd5e51700] MaxFrameSize: 0; MaxSliceSize: 0
[hevc_qsv @ 0000022bd5e51700] BitrateLimit: unknown; MBBRC: OFF; ExtBRC: OFF
[hevc_qsv @ 0000022bd5e51700] Trellis: auto
[hevc_qsv @ 0000022bd5e51700] RepeatPPS: OFF; NumMbPerSlice: 0; LookAheadDS: unknown
[hevc_qsv @ 0000022bd5e51700] AdaptiveI: unknown; AdaptiveB: unknown; BRefType:pyramid
[hevc_qsv @ 0000022bd5e51700] MinQPI: 22; MaxQPI: 63; MinQPP: 22; MaxQPP: 63; MinQPB: 22; MaxQPB: 63
[hevc_qsv @ 0000022bd5e51700] DisableDeblockingIdc: 0
[hevc_qsv @ 0000022bd5e51700] SkipFrame: no_skip
[hevc_qsv @ 0000022bd5e51700] PRefType: default
[hevc_qsv @ 0000022bd5e51700] GPB: ON
[hevc_qsv @ 0000022bd5e51700] TransformSkip: ON
[hevc_qsv @ 0000022bd5e51700] IntRefCycleDist: 0
[hevc_qsv @ 0000022bd5e51700] LowDelayBRC: OFF
[hevc_qsv @ 0000022bd5e51700] MaxFrameSizeI: 0; MaxFrameSizeP: 0
[hevc_qsv @ 0000022bd5e51700] ScenarioInfo: 3
[hevc_qsv @ 0000022bd5e51700] NumTileColumns: 1; NumTileRows: 1
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[matroska @ 0000022bd467e800] get_metadata_duration returned: 0
Output #0, matroska, to 'Georgia_LAV.mkv':
Metadata:
encoder : Lavf60.20.100
Stream #0:0, 0, 1/1000: Video: hevc, 1 reference frame, p010le(tv, bt2020nc/bt2020/smpte2084, progressive), 7680x4316 (0x0) [SAR 1:1 DAR 1920:1079], 0/1, q=2-31, 1000 kb/s, 25 fps, 1k tbn
Metadata:
encoder : Lavc60.39.100 hevc_qsv
Side data:
cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: N/A
[out#0/matroska @ 0000022bd4676f80] Starting thread...
[out_0_0 @ 0000022bdcf7e780] EOF on sink link out_0_0:default.
[vf#0:0 @ 0000022bd5e53bc0] Filtergraph returned EOF, finishing
[vf#0:0 @ 0000022bd5e53bc0] All consumers returned EOF
[vf#0:0 @ 0000022bd5e53bc0] Terminating thread with return code 0 (success)
[vost#0:0/hevc_qsv @ 0000022bd5e51440] Encoder thread received EOF
frame= 0 fps=0.0 q=0.0 size= 0KiB time=N/A bitrate=N/A speed=N/A
[vost#0:0/hevc_qsv @ 0000022bd5e51440] Terminating thread with return code 0 (success)
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 0000022bd5e4fa00] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
[matroska @ 0000022bd467e800] Starting new cluster with timestamp 0 at offset 703 bytes
[matroska @ 0000022bd467e800] Writing block of size 887241 with pts 0, dts -120, duration 40 at relative offset 9 in cluster at offset 703. TrackNumber 1, keyframe 1
[out#0/matroska @ 0000022bd4676f80] All streams finished
[out#0/matroska @ 0000022bd4676f80] Terminating thread with return code 0 (success)
[matroska @ 0000022bd467e800] end duration = 40
[matroska @ 0000022bd467e800] stream 0 end duration = 40
[AVIOContext @ 0000022bd5e7de00] Statistics: 888657 bytes written, 2 seeks, 5 writeouts
[out#0/matroska @ 0000022bd4676f80] Output file #0 (Georgia_LAV.mkv):
[out#0/matroska @ 0000022bd4676f80] Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (887241 bytes);
[out#0/matroska @ 0000022bd4676f80] Total: 1 packets (887241 bytes) muxed
[out#0/matroska @ 0000022bd4676f80] video:866KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.085321%
frame= 1 fps=0.8 q=-0.0 Lsize= 867KiB time=-00:00:00.12 bitrate=N/A speed=N/A
[in#0/obu @ 0000022bd467da40] Input file #0 (Georgia_1F.obu):
[in#0/obu @ 0000022bd467da40] Input stream #0:0 (video): 1 packets read (834365 bytes); 1 frames decoded; 0 decode errors;
[in#0/obu @ 0000022bd467da40] Total: 1 packets (834365 bytes) demuxed
[AVIOContext @ 0000022bd467e300] Statistics: 834365 bytes read, 0 seeks

An encode, with crop done by libplacebo: https://nle-chipcraft.com/Git/Georgia/Georgia_PLC.mkv

ffmpeg -init_hw_device vulkan -i Georgia_1F.obu -bsf:v hevc_metadata=chroma_sample_loc_type=2 -vf libplacebo=crop_w=7680:crop_h=4316:crop_x=0:crop_y=2:w=7680:h=4316 -c:v hevc_qsv -preset veryslow -scenario archive -global_quality 14 -profile:v main10 -level:v 61 -tier high -flags +cgop -g 120 -pix_fmt p010le -loglevel debug Georgia_PLC.mkv

Debug log

ffmpeg version N-113620-g3be80ce299 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 13.2.0 (Rev4, Built by MSYS2 project)
configuration: --enable-libvpl --enable-libdav1d --enable-libplacebo --enable-gpl --enable-nonfree --cpu=x86-64-v3 --extra-libs=-lstdc++
libavutil 58. 36.101 / 58. 36.101
libavcodec 60. 39.100 / 60. 39.100
libavformat 60. 20.100 / 60. 20.100
libavdevice 60. 4.100 / 60. 4.100
libavfilter 9. 17.100 / 9. 17.100
libswscale 7. 6.100 / 7. 6.100
libswresample 4. 13.100 / 4. 13.100
libpostproc 57. 4.100 / 57. 4.100
Splitting the commandline.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'vulkan'.
Reading option '-i' ... matched as output url with argument 'Georgia_1F.obu'.
Reading option '-bsf:v' ... matched as option 'bsf' (A comma-separated list of bitstream filters) with argument 'hevc_metadata=chroma_sample_loc_type=2'.
Reading option '-vf' ... matched as option 'vf' (alias for -filter:v (apply filters to video streams)) with argument 'libplacebo=crop_w=7680:crop_h=4316:crop_x=0:crop_y=2:w=7680:h=4316'.
Reading option '-c:v' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'hevc_qsv'.
Reading option '-preset' ... matched as AVOption 'preset' with argument 'veryslow'.
Reading option '-scenario' ... matched as AVOption 'scenario' with argument 'archive'.
Reading option '-global_quality' ... matched as AVOption 'global_quality' with argument '14'.
Reading option '-profile:v' ... matched as option 'profile' (set profile) with argument 'main10'.
Reading option '-level:v' ... matched as AVOption 'level:v' with argument '61'.
Reading option '-tier' ... matched as AVOption 'tier' with argument 'high'.
Reading option '-flags' ... matched as AVOption 'flags' with argument '+cgop'.
Reading option '-g' ... matched as AVOption 'g' with argument '120'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'p010le'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option 'Georgia_PLC.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option init_hw_device (initialise hardware device) with argument vulkan.
[AVHWDeviceContext @ 000002a43bdde680] Supported validation layers:
[AVHWDeviceContext @ 000002a43bdde680] VK_LAYER_VALVE_steam_overlay
[AVHWDeviceContext @ 000002a43bdde680] VK_LAYER_VALVE_steam_fossilize
[AVHWDeviceContext @ 000002a43bdde680] Using instance extension VK_KHR_portability_enumeration
[AVHWDeviceContext @ 000002a43bdde680] GPU listing:
[AVHWDeviceContext @ 000002a43bdde680] 0: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 000002a43bdde680] Device 0 selected: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 000002a43bdde680] Queue families:
[AVHWDeviceContext @ 000002a43bdde680] 0: graphics compute transfer sparse (queues: 1)
[AVHWDeviceContext @ 000002a43bdde680] 1: compute (queues: 1)
[AVHWDeviceContext @ 000002a43bdde680] 2: transfer (queues: 1)
[AVHWDeviceContext @ 000002a43bdde680] 3: decode (queues: 2)
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_push_descriptor
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_sampler_ycbcr_conversion
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_EXT_descriptor_buffer
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_EXT_shader_atomic_float
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_EXT_external_memory_host
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_external_memory_win32
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_external_semaphore_win32
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_video_queue
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_video_decode_queue
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_video_decode_h264
[AVHWDeviceContext @ 000002a43bdde680] Using device extension VK_KHR_video_decode_h265
[AVHWDeviceContext @ 000002a43bdde680] Using device: Intel(R) Arc(TM) A380 Graphics
[AVHWDeviceContext @ 000002a43bdde680] Alignments:
[AVHWDeviceContext @ 000002a43bdde680] optimalBufferCopyRowPitchAlignment: 64
[AVHWDeviceContext @ 000002a43bdde680] minMemoryMapAlignment: 64
[AVHWDeviceContext @ 000002a43bdde680] nonCoherentAtomSize: 1
[AVHWDeviceContext @ 000002a43bdde680] minImportedHostPointerAlignment: 4096
[AVHWDeviceContext @ 000002a43bdde680] Using queue family 0 (queues: 1) for graphics
[AVHWDeviceContext @ 000002a43bdde680] Using queue family 1 (queues: 1) for compute
[AVHWDeviceContext @ 000002a43bdde680] Using queue family 2 (queues: 1) for transfers
[AVHWDeviceContext @ 000002a43bdde680] Using queue family 3 (queues: 2) for decode
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url Georgia_1F.obu.
Successfully parsed a group of options.
Opening an input file: Georgia_1F.obu.
[AVFormatContext @ 000002a43a0cdd40] Opening 'Georgia_1F.obu' for reading
[file @ 000002a43a0ce1c0] Setting default whitelist 'file,crypto,data'
[obu @ 000002a43a0cdd40] Format obu probed with size=2048 and score=51
[obu @ 000002a43a0cdd40] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[libdav1d @ 000002a43a0ce800] libdav1d 1.3.0-89-g08051a3
[libdav1d @ 000002a43a0ce800] Using 1 threads, 0 max_frame_delay
[av1_frame_merge @ 000002a43a0cecc0] Frame 0: size 7680x4320 upscaled 7680 render 7680x4320 subsample 2x2 bitdepth 10 tiles 4x8.
Last message repeated 1 times
[libdav1d @ 000002a43a0ce800] Frame 0: size 7680x4320 upscaled 7680 render 7680x4320 subsample 2x2 bitdepth 10 tiles 4x8.
[extract_extradata @ 000002a43be40780] obu_type: 2, temporal_id: 0, spatial_id: 0, payload size: 0
[extract_extradata @ 000002a43be40780] obu_type: 1, temporal_id: 0, spatial_id: 0, payload size: 15
[extract_extradata @ 000002a43be40780] obu_type: 6, temporal_id: 0, spatial_id: 0, payload size: 834342
[obu @ 000002a43a0cdd40] After avformat_find_stream_info() pos: 834365 bytes read:834365 seeks:0 frames:1
Input #0, obu, from 'Georgia_1F.obu':
Duration: N/A, bitrate: N/A
Stream #0:0, 1, 1/1200000: Video: av1 (libdav1d) (Main), 1 reference frame, yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 7680x4320 (0x0) [SAR 1:1 DAR 16:9], 0/1, 25 fps, 1200k tbr, 1200k tbn
Successfully opened the file.
Parsing a group of options: output url Georgia_PLC.mkv.
Applying option bsf:v (A comma-separated list of bitstream filters) with argument hevc_metadata=chroma_sample_loc_type=2.
Applying option vf (alias for -filter:v (apply filters to video streams)) with argument libplacebo=crop_w=7680:crop_h=4316:crop_x=0:crop_y=2:w=7680:h=4316.
Applying option c:v (select encoder/decoder ('copy' to copy stream without reencoding)) with argument hevc_qsv.
Applying option profile:v (set profile) with argument main10.
Applying option pix_fmt (set pixel format) with argument p010le.
Successfully parsed a group of options.
Opening an output file: Georgia_PLC.mkv.
[out#0/matroska @ 000002a43a0c7280] No explicit maps, mapping streams automatically...
[vost#0:0/hevc_qsv @ 000002a43bde0880] Created video stream from input stream 0:0
[h265_metadata_bsf @ 000002a43bde2ec0] Setting 'chroma_sample_loc_type' to value '2'
[AVFilterGraph @ 000002a43a0cd580] Setting 'crop_w' to value '7680'
[AVFilterGraph @ 000002a43a0cd580] Setting 'crop_h' to value '4316'
[AVFilterGraph @ 000002a43a0cd580] Setting 'crop_x' to value '0'
[AVFilterGraph @ 000002a43a0cd580] Setting 'crop_y' to value '2'
[AVFilterGraph @ 000002a43a0cd580] Setting 'w' to value '7680'
[AVFilterGraph @ 000002a43a0cd580] Setting 'h' to value '4316'
[libplacebo @ 000002a43bdf0a80] Initialized libplacebo v6.338.0-77-g3ba18d5d (API v342)
[libdav1d @ 000002a43bde77c0] libdav1d 1.3.0-89-g08051a3
[libdav1d @ 000002a43bde77c0] Using 0 threads, 0 max_frame_delay
[file @ 000002a43bdf1600] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (av1 (libdav1d) -> hevc (hevc_qsv))
[vost#0:0/hevc_qsv @ 000002a43bde0880] Starting thread...
[vf#0:0 @ 000002a43bde3140] Starting thread...
[vist#0:0/av1 @ 000002a442bbbc80] [dec:libdav1d @ 000002a43bde3700] Starting thread...
[in#0/obu @ 000002a43a0cda40] Starting thread...
Press [q] to stop, [?] for help
[in#0/obu @ 000002a43a0cda40] EOF while reading input
[in#0/obu @ 000002a43a0cda40] Terminating thread with return code 0 (success)
[vist#0:0/av1 @ 000002a442bbbc80] [dec:libdav1d @ 000002a43bde3700] Decoder thread received EOF packet
[vist#0:0/av1 @ 000002a442bbbc80] [dec:libdav1d @ 000002a43bde3700] Decoder returned EOF, finishing
[vist#0:0/av1 @ 000002a442bbbc80] [dec:libdav1d @ 000002a43bde3700] Terminating thread with return code 0 (success)
[AVFilterGraph @ 000002a43a0cccc0] Setting 'crop_w' to value '7680'
[AVFilterGraph @ 000002a43a0cccc0] Setting 'crop_h' to value '4316'
[AVFilterGraph @ 000002a43a0cccc0] Setting 'crop_x' to value '0'
[AVFilterGraph @ 000002a43a0cccc0] Setting 'crop_y' to value '2'
[AVFilterGraph @ 000002a43a0cccc0] Setting 'w' to value '7680'
[AVFilterGraph @ 000002a43a0cccc0] Setting 'h' to value '4316'
detected 64 logical cores
[libplacebo @ 000002a442f3e0c0] Initialized libplacebo v6.338.0-77-g3ba18d5d (API v342)
[graph 0 input from stream 0:0 @ 000002a442f3fb00] Setting 'video_size' to value '7680x4320'
[graph 0 input from stream 0:0 @ 000002a442f3fb00] Setting 'pix_fmt' to value '62'
[graph 0 input from stream 0:0 @ 000002a442f3fb00] Setting 'time_base' to value '1/1200000'
[graph 0 input from stream 0:0 @ 000002a442f3fb00] Setting 'pixel_aspect' to value '1/1'
[graph 0 input from stream 0:0 @ 000002a442f3fb00] Setting 'colorspace' to value '9'
[graph 0 input from stream 0:0 @ 000002a442f3fb00] Setting 'range' to value '1'
[graph 0 input from stream 0:0 @ 000002a442f3fb00] Setting 'frame_rate' to value '25/1'
[graph 0 input from stream 0:0 @ 000002a442f3fb00] w:7680 h:4320 pixfmt:yuv420p10le tb:1/1200000 fr:25/1 sar:1/1 csp:bt2020nc range:tv
[format @ 000002a43be94480] Setting 'pix_fmts' to value 'p010le'
[libplacebo @ 000002a442f3e0c0] Imported vulkan device properties:
[libplacebo @ 000002a442f3e0c0] Device Name: Intel(R) Arc(TM) A380 Graphics
[libplacebo @ 000002a442f3e0c0] Device ID: 8086:56a5
[libplacebo @ 000002a442f3e0c0] Device UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 000002a442f3e0c0] Driver version: 19544a
[libplacebo @ 000002a442f3e0c0] API version: 1.3.271
[libplacebo @ 000002a442f3e0c0] Restricting API version to 1.3.0... new version 1.3.0
[libplacebo @ 000002a442f3e0c0] Memory heaps supported by device:
[libplacebo @ 000002a442f3e0c0] 0: flags 0x1 size 5800M
[libplacebo @ 000002a442f3e0c0] 1: flags 0x0 size 31G
[libplacebo @ 000002a442f3e0c0] 2: flags 0x1 size 256M
[libplacebo @ 000002a442f3e0c0] Memory types supported by device:
[libplacebo @ 000002a442f3e0c0] 0: flags 0x1 heap 0
[libplacebo @ 000002a442f3e0c0] 1: flags 0x6 heap 1
[libplacebo @ 000002a442f3e0c0] 2: flags 0xe heap 1
[libplacebo @ 000002a442f3e0c0] 3: flags 0x7 heap 2
[libplacebo @ 000002a442f3e0c0] Memory summary: 0 used 0 res 0 alloc, efficiency 100.00%, utilization 100.00%, max page: 362M
[libplacebo @ 000002a442f3e0c0] shaderc SPIR-V version 1.6 rev 1
[libplacebo @ 000002a442f3e0c0] Initialized SPIR-V compiler 'shaderc'
[libplacebo @ 000002a442f3e0c0] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT (0x10) is not exportable
[libplacebo @ 000002a442f3e0c0] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) is not exportable
[libplacebo @ 000002a442f3e0c0] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) is not importable
[libplacebo @ 000002a442f3e0c0] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT (0x10) is not exportable
[libplacebo @ 000002a442f3e0c0] Tex caps for VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) unsupported: VK_ERROR_FORMAT_NOT_SUPPORTED
Last message repeated 1 times
[libplacebo @ 000002a442f3e0c0] Minimum texel alignment: 48
[libplacebo @ 000002a442f3e0c0] GPU information:
[libplacebo @ 000002a442f3e0c0] GLSL version: 450 (vulkan)
[libplacebo @ 000002a442f3e0c0] max_shmem_size: 32768
[libplacebo @ 000002a442f3e0c0] max_group_threads: 1024
[libplacebo @ 000002a442f3e0c0] max_group_size[0]: 1024
[libplacebo @ 000002a442f3e0c0] max_group_size[1]: 1024
[libplacebo @ 000002a442f3e0c0] max_group_size[2]: 64
[libplacebo @ 000002a442f3e0c0] subgroup_size: 32
[libplacebo @ 000002a442f3e0c0] min_gather_offset: -32
[libplacebo @ 000002a442f3e0c0] max_gather_offset: 31
[libplacebo @ 000002a442f3e0c0] Limits:
[libplacebo @ 000002a442f3e0c0] thread_safe: 1
[libplacebo @ 000002a442f3e0c0] callbacks: 1
[libplacebo @ 000002a442f3e0c0] max_buf_size: 34290857984
[libplacebo @ 000002a442f3e0c0] max_ubo_size: 134217724
[libplacebo @ 000002a442f3e0c0] max_ssbo_size: 1073741820
[libplacebo @ 000002a442f3e0c0] max_vbo_size: 6081740800
[libplacebo @ 000002a442f3e0c0] max_mapped_size: 34290857984
[libplacebo @ 000002a442f3e0c0] max_buffer_texels: 134217728
[libplacebo @ 000002a442f3e0c0] align_host_ptr: 4096
[libplacebo @ 000002a442f3e0c0] host_cached: 1
[libplacebo @ 000002a442f3e0c0] max_tex_1d_dim: 16384
[libplacebo @ 000002a442f3e0c0] max_tex_2d_dim: 16384
[libplacebo @ 000002a442f3e0c0] max_tex_3d_dim: 2048
[libplacebo @ 000002a442f3e0c0] blittable_1d_3d: 1
[libplacebo @ 000002a442f3e0c0] buf_transfer: 1
[libplacebo @ 000002a442f3e0c0] align_tex_xfer_pitch: 64
[libplacebo @ 000002a442f3e0c0] align_tex_xfer_offset: 64
[libplacebo @ 000002a442f3e0c0] max_variable_comps: 0
[libplacebo @ 000002a442f3e0c0] max_constants: 18446744073709551615
[libplacebo @ 000002a442f3e0c0] max_pushc_size: 256
[libplacebo @ 000002a442f3e0c0] align_vertex_stride: 1
[libplacebo @ 000002a442f3e0c0] max_dispatch[0]: 65536
[libplacebo @ 000002a442f3e0c0] max_dispatch[1]: 65536
[libplacebo @ 000002a442f3e0c0] max_dispatch[2]: 65536
[libplacebo @ 000002a442f3e0c0] fragment_queues: 1
[libplacebo @ 000002a442f3e0c0] compute_queues: 1
[libplacebo @ 000002a442f3e0c0] External API interop:
[libplacebo @ 000002a442f3e0c0] UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 000002a442f3e0c0] PCI: 0000:00:00:0
[libplacebo @ 000002a442f3e0c0] buf export caps: 0x2
[libplacebo @ 000002a442f3e0c0] buf import caps: 0x12
[libplacebo @ 000002a442f3e0c0] tex export caps: 0x2
[libplacebo @ 000002a442f3e0c0] tex import caps: 0x12
[libplacebo @ 000002a442f3e0c0] sync export caps: 0x2
[libplacebo @ 000002a442f3e0c0] sync import caps: 0x0
[libplacebo @ 000002a442f3e0c0] GPU texture formats:
[libplacebo @ 000002a442f3e0c0] NAME TYPE SIZE COMP CAPS EMU DEPTH HOST_BITS GLSL_TYPE GLSL_FMT FOURCC
[libplacebo @ 000002a442f3e0c0] r8 UNORM 1 R SsLRbBVutHWG n {8 0 0 0 } {8 0 0 0 } float r8 R8
[libplacebo @ 000002a442f3e0c0] r8s SNORM 1 R SsLRbBVutHWG n {8 0 0 0 } {8 0 0 0 } float r8_snorm
[libplacebo @ 000002a442f3e0c0] rg8 UNORM 2 RG SsLRbBVutHWG n {8 8 0 0 } {8 8 0 0 } vec2 rg8 GR88
[libplacebo @ 000002a442f3e0c0] rg8s SNORM 2 RG SsLRbBVutHWG n {8 8 0 0 } {8 8 0 0 } vec2 rg8_snorm
[libplacebo @ 000002a442f3e0c0] rgba8 UNORM 4 RGBA SsLRbBVutHWG n {8 8 8 8 } {8 8 8 8 } vec4 rgba8 AB24
[libplacebo @ 000002a442f3e0c0] rgba8s SNORM 4 RGBA SsLRbBVutHWG n {8 8 8 8 } {8 8 8 8 } vec4 rgba8_snorm
[libplacebo @ 000002a442f3e0c0] bgra8 UNORM 4 BGRA SsLRbBVutHWG n {8 8 8 8 } {8 8 8 8 } vec4 rgba8 AR24
[libplacebo @ 000002a442f3e0c0] rgb10a2 UNORM 4 RGBA SsLRbBVutHWG n {10 10 10 2 } {10 10 10 2 } vec4 rgb10_a2 AB30
[libplacebo @ 000002a442f3e0c0] bgr10a2 UNORM 4 BGRA SsLRbBVutHWG n {10 10 10 2 } {10 10 10 2 } vec4 rgb10_a2 AR30
[libplacebo @ 000002a442f3e0c0] r16 UNORM 2 R SsLRbBVutHWG n {16 0 0 0 } {16 0 0 0 } float r16 R16
[libplacebo @ 000002a442f3e0c0] r16hf FLOAT 2 R SsLRbBVutHWG n {16 0 0 0 } {16 0 0 0 } float r16f
[libplacebo @ 000002a442f3e0c0] r16s SNORM 2 R SsLRbBVutHWG n {16 0 0 0 } {16 0 0 0 } float r16_snorm
[libplacebo @ 000002a442f3e0c0] rg16 UNORM 4 RG SsLRbBVutHWG n {16 16 0 0 } {16 16 0 0 } vec2 rg16 GR32
[libplacebo @ 000002a442f3e0c0] rg16hf FLOAT 4 RG SsLRbBVutHWG n {16 16 0 0 } {16 16 0 0 } vec2 rg16f
[libplacebo @ 000002a442f3e0c0] rg16s SNORM 4 RG SsLRbBVutHWG n {16 16 0 0 } {16 16 0 0 } vec2 rg16_snorm
[libplacebo @ 000002a442f3e0c0] rgba16 UNORM 8 RGBA SsLRbBVutHWG n {16 16 16 16} {16 16 16 16} vec4 rgba16
[libplacebo @ 000002a442f3e0c0] rgba16hf FLOAT 8 RGBA SsLRbBVutHWG n {16 16 16 16} {16 16 16 16} vec4 rgba16f AB4H
[libplacebo @ 000002a442f3e0c0] rgba16s SNORM 8 RGBA SsLRbBVutHWG n {16 16 16 16} {16 16 16 16} vec4 rgba16_snorm
[libplacebo @ 000002a442f3e0c0] r32f FLOAT 4 R SsLRbBVutHWG n {32 0 0 0 } {32 0 0 0 } float r32f
[libplacebo @ 000002a442f3e0c0] rg32f FLOAT 8 RG SsLRbBVutHWG n {32 32 0 0 } {32 32 0 0 } vec2 rg32f
[libplacebo @ 000002a442f3e0c0] rgba32f FLOAT 16 RGBA SsLRbBVutHWG n {32 32 32 32} {32 32 32 32} vec4 rgba32f
[libplacebo @ 000002a442f3e0c0] rgb565 UNORM 2 RGB SsLRbB-utHWG n {5 6 5 0 } {5 6 5 0 } vec3 BG16
[libplacebo @ 000002a442f3e0c0] bgr5a1 UNORM 2 BGRA SsLRbB-utHWG n {5 5 5 1 } {5 5 5 1 } vec4 AR15
[libplacebo @ 000002a442f3e0c0] bgr565 UNORM 2 BGR SsLRbB-utHWG n {5 6 5 0 } {5 6 5 0 } vec3 RG16
[libplacebo @ 000002a442f3e0c0] r8i SINT 1 R Ss-R-BVutHWG n {8 0 0 0 } {8 0 0 0 } int r8i
[libplacebo @ 000002a442f3e0c0] r8u UINT 1 R Ss-R-BVutHWG n {8 0 0 0 } {8 0 0 0 } uint r8ui
[libplacebo @ 000002a442f3e0c0] rg8i SINT 2 RG Ss-R-BVutHWG n {8 8 0 0 } {8 8 0 0 } ivec2 rg8i
[libplacebo @ 000002a442f3e0c0] rg8u UINT 2 RG Ss-R-BVutHWG n {8 8 0 0 } {8 8 0 0 } uvec2 rg8ui
[libplacebo @ 000002a442f3e0c0] rgba8i SINT 4 RGBA Ss-R-BVutHWG n {8 8 8 8 } {8 8 8 8 } ivec4 rgba8i
[libplacebo @ 000002a442f3e0c0] rgba8u UINT 4 RGBA Ss-R-BVutHWG n {8 8 8 8 } {8 8 8 8 } uvec4 rgba8ui
[libplacebo @ 000002a442f3e0c0] rgb10a2u UINT 4 RGBA Ss-R-BVutHWG n {10 10 10 2 } {10 10 10 2 } uvec4 rgb10_a2ui
[libplacebo @ 000002a442f3e0c0] r16i SINT 2 R Ss-R-BVutHWG n {16 0 0 0 } {16 0 0 0 } int r16i
[libplacebo @ 000002a442f3e0c0] r16u UINT 2 R Ss-R-BVutHWG n {16 0 0 0 } {16 0 0 0 } uint r16ui
[libplacebo @ 000002a442f3e0c0] rg16i SINT 4 RG Ss-R-BVutHWG n {16 16 0 0 } {16 16 0 0 } ivec2 rg16i
[libplacebo @ 000002a442f3e0c0] rg16u UINT 4 RG Ss-R-BVutHWG n {16 16 0 0 } {16 16 0 0 } uvec2 rg16ui
[libplacebo @ 000002a442f3e0c0] rgba16i SINT 8 RGBA Ss-R-BVutHWG n {16 16 16 16} {16 16 16 16} ivec4 rgba16i
[libplacebo @ 000002a442f3e0c0] rgba16u UINT 8 RGBA Ss-R-BVutHWG n {16 16 16 16} {16 16 16 16} uvec4 rgba16ui
[libplacebo @ 000002a442f3e0c0] r32i SINT 4 R Ss-R-BVutHWG n {32 0 0 0 } {32 0 0 0 } int r32i
[libplacebo @ 000002a442f3e0c0] r32u UINT 4 R Ss-R-BVutHWG n {32 0 0 0 } {32 0 0 0 } uint r32ui
[libplacebo @ 000002a442f3e0c0] rg32i SINT 8 RG Ss-R-BVutHWG n {32 32 0 0 } {32 32 0 0 } ivec2 rg32i
[libplacebo @ 000002a442f3e0c0] rg32u UINT 8 RG Ss-R-BVutHWG n {32 32 0 0 } {32 32 0 0 } uvec2 rg32ui
[libplacebo @ 000002a442f3e0c0] rgba32i SINT 16 RGBA Ss-R-BVutHWG n {32 32 32 32} {32 32 32 32} ivec4 rgba32i
[libplacebo @ 000002a442f3e0c0] rgba32u UINT 16 RGBA Ss-R-BVutHWG n {32 32 32 32} {32 32 32 32} uvec4 rgba32ui
[libplacebo @ 000002a442f3e0c0] a1bgr5 UNORM 2 ABGR S-LRbB-u-H-G n {1 5 5 5 } {1 5 5 5 } vec4 RA15
[libplacebo @ 000002a442f3e0c0] argb4 UNORM 2 ARGB S-LRbB-u-H-G n {4 4 4 4 } {4 4 4 4 } vec4 BA12
[libplacebo @ 000002a442f3e0c0] abgr4 UNORM 2 ABGR S-LRbB-u-H-G n {4 4 4 4 } {4 4 4 4 } vec4 RA12
[libplacebo @ 000002a442f3e0c0] a1rgb5 UNORM 2 ARGB S-LR---u-H-G n {1 5 5 5 } {1 5 5 5 } vec4 BA15
[libplacebo @ 000002a442f3e0c0] rgb8 UNORM 3 RGB S-L---Vu-H-G n {8 8 8 0 } {8 8 8 0 } vec3 BG24
[libplacebo @ 000002a442f3e0c0] rgb8s SNORM 3 RGB S-L---Vu-H-G n {8 8 8 0 } {8 8 8 0 } vec3
[libplacebo @ 000002a442f3e0c0] rgb16 UNORM 6 RGB S-L---Vu-H-G n {16 16 16 0 } {16 16 16 0 } vec3
[libplacebo @ 000002a442f3e0c0] rgb16hf FLOAT 6 RGB S-L---Vu-H-G n {16 16 16 0 } {16 16 16 0 } vec3
[libplacebo @ 000002a442f3e0c0] rgb16s SNORM 6 RGB S-L---Vu-H-G n {16 16 16 0 } {16 16 16 0 } vec3
[libplacebo @ 000002a442f3e0c0] rgb32f FLOAT 12 RGB S-----Vu-H-G n {32 32 32 0 } {32 32 32 0 } vec3
[libplacebo @ 000002a442f3e0c0] rgb32i SINT 12 RGB S-----Vu-H-G n {32 32 32 0 } {32 32 32 0 } ivec3
[libplacebo @ 000002a442f3e0c0] rgb32u UINT 12 RGB S-----Vu-H-G n {32 32 32 0 } {32 32 32 0 } uvec3
[libplacebo @ 000002a442f3e0c0] rgb8i SINT 3 RGB S-----V--H-G n {8 8 8 0 } {8 8 8 0 } ivec3
[libplacebo @ 000002a442f3e0c0] rgb8u UINT 3 RGB S-----V--H-G n {8 8 8 0 } {8 8 8 0 } uvec3
[libplacebo @ 000002a442f3e0c0] rgb10a2i SINT 4 RGBA ------V--H-- n {10 10 10 2 } {10 10 10 2 } ivec4
[libplacebo @ 000002a442f3e0c0] rgb10a2s SNORM 4 RGBA ------V--H-- n {10 10 10 2 } {10 10 10 2 } vec4
[libplacebo @ 000002a442f3e0c0] bgr10a2i SINT 4 BGRA ------V--H-- n {10 10 10 2 } {10 10 10 2 } ivec4
[libplacebo @ 000002a442f3e0c0] bgr10a2s SNORM 4 BGRA ------V--H-- n {10 10 10 2 } {10 10 10 2 } vec4
[libplacebo @ 000002a442f3e0c0] bgr10a2u UINT 4 BGRA ------V--H-- n {10 10 10 2 } {10 10 10 2 } uvec4
[libplacebo @ 000002a442f3e0c0] rgb16i SINT 6 RGB ------V--H-- n {16 16 16 0 } {16 16 16 0 } ivec3
[libplacebo @ 000002a442f3e0c0] rgb16u UINT 6 RGB ------V--H-- n {16 16 16 0 } {16 16 16 0 } uvec3
[libplacebo @ 000002a442f3e0c0] gr4 UNORM 1 GR ---------H-- n {4 4 0 0 } {4 4 0 0 }
[libplacebo @ 000002a442f3e0c0] bgr8 UNORM 3 BGR ---------H-- n {8 8 8 0 } {8 8 8 0 } RG24
[libplacebo @ 000002a442f3e0c0] bgr8i SINT 3 BGR ---------H-- n {8 8 8 0 } {8 8 8 0 }
[libplacebo @ 000002a442f3e0c0] bgr8u UINT 3 BGR ---------H-- n {8 8 8 0 } {8 8 8 0 }
[libplacebo @ 000002a442f3e0c0] bgra8i SINT 4 BGRA ---------H-- n {8 8 8 8 } {8 8 8 8 }
[libplacebo @ 000002a442f3e0c0] bgra8u UINT 4 BGRA ---------H-- n {8 8 8 8 } {8 8 8 8 }
[libplacebo @ 000002a442f3e0c0] rx10 UNORM 2 R ---------H-- n {10 0 0 0 } {16 0 0 0 }
[libplacebo @ 000002a442f3e0c0] rxgx10 UNORM 4 RG ---------H-- n {10 10 0 0 } {16 16 0 0 }
[libplacebo @ 000002a442f3e0c0] rx12 UNORM 2 R ---------H-- n {12 0 0 0 } {16 0 0 0 }
[libplacebo @ 000002a442f3e0c0] rxgx12 UNORM 4 RG ---------H-- n {12 12 0 0 } {16 16 0 0 }
[libplacebo @ 000002a442f3e0c0] r16f FLOAT 4 R SsLRbB---HWG y {16 0 0 0 } {32 0 0 0 } r16f
[libplacebo @ 000002a442f3e0c0] rg16f FLOAT 8 RG SsLRbB---HWG y {16 16 0 0 } {32 32 0 0 } rg16f
[libplacebo @ 000002a442f3e0c0] rgba16f FLOAT 16 RGBA SsLRbB---HWG y {16 16 16 16} {32 32 32 32} rgba16f
[libplacebo @ 000002a442f3e0c0] rgb16f FLOAT 12 RGB S-L------H-G y {16 16 16 0 } {32 32 32 0 }
[libplacebo @ 000002a442f3e0c0] g8_b8_r8_420 UNORM 0 ------------ n {8 8 8 0 } {0 0 0 0 } YU12
[libplacebo @ 000002a442f3e0c0] g8_b8_r8_422 UNORM 0 ------------ n {8 8 8 0 } {0 0 0 0 } YU16
[libplacebo @ 000002a442f3e0c0] g8_b8_r8_444 UNORM 0 ------------ n {8 8 8 0 } {0 0 0 0 } YU24
[libplacebo @ 000002a442f3e0c0] g8_br8_420 UNORM 0 ------------ n {8 8 8 0 } {0 0 0 0 } NV12
[libplacebo @ 000002a442f3e0c0] g8_br8_422 UNORM 0 ------------ n {8 8 8 0 } {0 0 0 0 } NV16
[libplacebo @ 000002a442f3e0c0] g8_br8_444 UNORM 0 ------------ n {8 8 8 0 } {0 0 0 0 } NV24
[libplacebo @ 000002a442f3e0c0] gx10_bx10_rx10_420 UNORM 0 ------------ n {10 10 10 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] gx10_bx10_rx10_422 UNORM 0 ------------ n {10 10 10 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] gx10_bx10_rx10_444 UNORM 0 ------------ n {10 10 10 0 } {0 0 0 0 } Q410
[libplacebo @ 000002a442f3e0c0] gx10_bxrx10_420 UNORM 0 ------------ n {10 10 10 0 } {0 0 0 0 } P010
[libplacebo @ 000002a442f3e0c0] gx10_bxrx10_422 UNORM 0 ------------ n {10 10 10 0 } {0 0 0 0 } P210
[libplacebo @ 000002a442f3e0c0] gx10_bxrx10_444 UNORM 0 ------------ n {10 10 10 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] gx12_bx12_rx12_420 UNORM 0 ------------ n {12 12 12 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] gx12_bx12_rx12_422 UNORM 0 ------------ n {12 12 12 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] gx12_bx12_rx12_444 UNORM 0 ------------ n {12 12 12 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] gx12_bxrx12_420 UNORM 0 ------------ n {12 12 12 0 } {0 0 0 0 } P012
[libplacebo @ 000002a442f3e0c0] gx12_bxrx12_422 UNORM 0 ------------ n {12 12 12 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] gx12_bxrx12_444 UNORM 0 ------------ n {12 12 12 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] g16_b16_r16_420 UNORM 0 ------------ n {16 16 16 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] g16_b16_r16_422 UNORM 0 ------------ n {16 16 16 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] g16_b16_r16_444 UNORM 0 ------------ n {16 16 16 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] g16_br16_420 UNORM 0 ------------ n {16 16 16 0 } {0 0 0 0 } P016
[libplacebo @ 000002a442f3e0c0] g16_br16_422 UNORM 0 ------------ n {16 16 16 0 } {0 0 0 0 }
[libplacebo @ 000002a442f3e0c0] g16_br16_444 UNORM 0 ------------ n {16 16 16 0 } {0 0 0 0 }
[AVFilterGraph @ 000002a43a0cccc0] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
[graph 0 input from stream 0:0 @ 000002a442f3fb00] video frame properties congruent with link at pts_time: 0
[libplacebo @ 000002a442f3e0c0] (Re)creating 7680x4320x0 texture with format r16: ../src/utils/upload.c:245
[libplacebo @ 000002a442f3e0c0] Allocating 267649024 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000002a442f3e0c0] Spent 0.749 ms allocating slab
[libplacebo @ 000002a442f3e0c0] Imported host pointer is not page-aligned. This should normally be fine on most platforms, but may cause issues in some rare circumstances.
[libplacebo @ 000002a442f3e0c0] (Re)creating 3840x2160x0 texture with format r16: ../src/utils/upload.c:245
Last message repeated 1 times
[libplacebo @ 000002a442f3e0c0] (Re)creating 7680x4316x0 texture with format r16: ../src/utils/upload.c:356
[libplacebo @ 000002a442f3e0c0] (Re)creating 3840x2158x0 texture with format rg16: ../src/utils/upload.c:356
[libplacebo @ 000002a442f3e0c0] Allocating 267911168 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000002a442f3e0c0] Spent 0.772 ms allocating slab
[libplacebo @ 000002a442f3e0c0] (Re)creating 3840x2160x0 texture with format rg16: src/renderer.c:1647
[libplacebo @ 000002a442f3e0c0] vertex shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(constant_id=0) const float _4 = 1;
[libplacebo @ 000002a442f3e0c0] [ 11] layout(constant_id=1) const float _8004 = 1;
[libplacebo @ 000002a442f3e0c0] [ 12] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 13] layout(binding=1) uniform sampler2D _8002;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(location=0) in vec2 _7;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(location=0) out vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(location=1) in vec2 _8;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(location=1) out vec2 _8003;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(location=2) in vec2 _9;
[libplacebo @ 000002a442f3e0c0] [ 19] void main() {
[libplacebo @ 000002a442f3e0c0] [ 20] _3 = _7;
[libplacebo @ 000002a442f3e0c0] [ 21] _8003 = _8;
[libplacebo @ 000002a442f3e0c0] [ 22] vec2 va_pos = _9;
[libplacebo @ 000002a442f3e0c0] [ 23] gl_Position = vec4(va_pos, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 24] }
[libplacebo @ 000002a442f3e0c0] fragment shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(constant_id=0) const float _4 = 1;
[libplacebo @ 000002a442f3e0c0] [ 11] layout(constant_id=1) const float _8004 = 1;
[libplacebo @ 000002a442f3e0c0] [ 12] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 13] layout(binding=1) uniform sampler2D _8002;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(location=0) in vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(location=1) in vec2 _8003;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(location=0) out vec4 out_color;
[libplacebo @ 000002a442f3e0c0] [ 17]
[libplacebo @ 000002a442f3e0c0] [ 18] vec4 _8001() {
[libplacebo @ 000002a442f3e0c0] [ 19] // pl_shader_sample_direct
[libplacebo @ 000002a442f3e0c0] [ 20] vec4 color = vec4(_8004) * textureLod(_8002, _8003, 0.0);
[libplacebo @ 000002a442f3e0c0] [ 21] return color;
[libplacebo @ 000002a442f3e0c0] [ 22] }
[libplacebo @ 000002a442f3e0c0] [ 23]
[libplacebo @ 000002a442f3e0c0] [ 24] vec4 _1() {
[libplacebo @ 000002a442f3e0c0] [ 25] // pl_shader_sample_direct
[libplacebo @ 000002a442f3e0c0] [ 26] vec4 color = vec4(_4) * textureLod(_2, _3, 0.0);
[libplacebo @ 000002a442f3e0c0] [ 27] {
[libplacebo @ 000002a442f3e0c0] [ 28] vec4 tmp = _8001();
[libplacebo @ 000002a442f3e0c0] [ 29] color[1] = tmp[0];
[libplacebo @ 000002a442f3e0c0] [ 30] }
[libplacebo @ 000002a442f3e0c0] [ 31] return color;
[libplacebo @ 000002a442f3e0c0] [ 32] }
[libplacebo @ 000002a442f3e0c0] [ 33]
[libplacebo @ 000002a442f3e0c0] [ 34] void main() {
[libplacebo @ 000002a442f3e0c0] [ 35] out_color = _1();
[libplacebo @ 000002a442f3e0c0] [ 36] }
[libplacebo @ 000002a442f3e0c0] Specialization constant values:
[libplacebo @ 000002a442f3e0c0] constant_id=0: 1.000000
[libplacebo @ 000002a442f3e0c0] constant_id=1: 1.000000
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 76.423 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 1.964 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] Spent 0.013 ms compiling shader
[libplacebo @ 000002a442f3e0c0] Spent 0.644 ms creating pipeline
[libplacebo @ 000002a442f3e0c0] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000002a442f3e0c0] Allocating 261888 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:1160
[libplacebo @ 000002a442f3e0c0] Spent 0.414 ms allocating slab
[libplacebo @ 000002a442f3e0c0] LUT invalidated, regenerating..
[libplacebo @ 000002a442f3e0c0] Spent 0.000 ms generating shader LUT
[libplacebo @ 000002a442f3e0c0] Allocating 262144 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000002a442f3e0c0] Spent 0.041 ms allocating slab
[libplacebo @ 000002a442f3e0c0] Allocating 255936 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:533
[libplacebo @ 000002a442f3e0c0] Spent 0.563 ms allocating slab
[libplacebo @ 000002a442f3e0c0] (Re)creating 3840x4316x0 texture with format rg16hf: src/renderer.c:762
[libplacebo @ 000002a442f3e0c0] Allocating 535298048 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000002a442f3e0c0] Spent 1.236 ms allocating slab
[libplacebo @ 000002a442f3e0c0] vertex shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _4;
[libplacebo @ 000002a442f3e0c0] [ 12] };
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=0) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(constant_id=1) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(constant_id=2) const float _b = 1;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(constant_id=3) const float _c = 1;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=4) const uint _d = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=5) const float _e = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=6) const float _f = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(location=0) in vec2 _12;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(location=0) out vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 24] layout(location=1) in vec2 _13;
[libplacebo @ 000002a442f3e0c0] [ 25] void main() {
[libplacebo @ 000002a442f3e0c0] [ 26] _3 = _12;
[libplacebo @ 000002a442f3e0c0] [ 27] vec2 va_pos = _13;
[libplacebo @ 000002a442f3e0c0] [ 28] gl_Position = vec4(va_pos, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 29] }
[libplacebo @ 000002a442f3e0c0] fragment shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _4;
[libplacebo @ 000002a442f3e0c0] [ 12] };
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=0) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(constant_id=1) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(constant_id=2) const float _b = 1;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(constant_id=3) const float _c = 1;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=4) const uint _d = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=5) const float _e = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=6) const float _f = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(location=0) in vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(location=0) out vec4 out_color;
[libplacebo @ 000002a442f3e0c0] [ 24]
[libplacebo @ 000002a442f3e0c0] [ 25] #define _7(x) (_9 * (x) + _8)
[libplacebo @ 000002a442f3e0c0] [ 26] #define _a(x) (_c * (x) + _b)
[libplacebo @ 000002a442f3e0c0] [ 27] #define _5(pos) (textureLod(_6, vec2(
[libplacebo @ 000002a442f3e0c0] [ 28] _7(vec2(pos).x)
[libplacebo @ 000002a442f3e0c0] [ 29] ,_a(vec2(pos).y)
[libplacebo @ 000002a442f3e0c0] [ 30] ), 0.0).xyzw)
[libplacebo @ 000002a442f3e0c0] [ 31] vec4 _1() {
[libplacebo @ 000002a442f3e0c0] [ 32]
[libplacebo @ 000002a442f3e0c0] [ 33] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 34] {
[libplacebo @ 000002a442f3e0c0] [ 35] vec2 pos = _3, pt = _4;
[libplacebo @ 000002a442f3e0c0] [ 36] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 000002a442f3e0c0] [ 37] vec2 dir = vec2(float(0), float(1));
[libplacebo @ 000002a442f3e0c0] [ 38] pt *= dir;
[libplacebo @ 000002a442f3e0c0] [ 39] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 000002a442f3e0c0] [ 40] float fcoord = dot(fcoord2, dir);
[libplacebo @ 000002a442f3e0c0] [ 41] vec2 base = pos - fcoord * pt - pt * vec2(float(2));
[libplacebo @ 000002a442f3e0c0] [ 42] vec4 ws;
[libplacebo @ 000002a442f3e0c0] [ 43] float off;
[libplacebo @ 000002a442f3e0c0] [ 44] vec2 c, ca = vec2(0.0);
[libplacebo @ 000002a442f3e0c0] [ 45] #pragma unroll 4
[libplacebo @ 000002a442f3e0c0] [ 46] for (uint n = 0u; n < _d; n += uint(1)) {
[libplacebo @ 000002a442f3e0c0] [ 47] if (n % 4u == 0u)
[libplacebo @ 000002a442f3e0c0] [ 48] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 000002a442f3e0c0] [ 49] off = float(n);
[libplacebo @ 000002a442f3e0c0] [ 50] c = textureLod(_2, base + pt * off, 0.0).rg;
[libplacebo @ 000002a442f3e0c0] [ 51] ca += ws[n % 4u] * c;
[libplacebo @ 000002a442f3e0c0] [ 52] }
[libplacebo @ 000002a442f3e0c0] [ 53] color.rg = _f * ca;
[libplacebo @ 000002a442f3e0c0] [ 54] }
[libplacebo @ 000002a442f3e0c0] [ 55] return color;
[libplacebo @ 000002a442f3e0c0] [ 56] }
[libplacebo @ 000002a442f3e0c0] [ 57]
[libplacebo @ 000002a442f3e0c0] [ 58] void main() {
[libplacebo @ 000002a442f3e0c0] [ 59] out_color = _1();
[libplacebo @ 000002a442f3e0c0] [ 60] }
[libplacebo @ 000002a442f3e0c0] Specialization constant values:
[libplacebo @ 000002a442f3e0c0] constant_id=0: 0.250000
[libplacebo @ 000002a442f3e0c0] constant_id=1: 0.500000
[libplacebo @ 000002a442f3e0c0] constant_id=2: 0.001953
[libplacebo @ 000002a442f3e0c0] constant_id=3: 0.996094
[libplacebo @ 000002a442f3e0c0] constant_id=4: 6
[libplacebo @ 000002a442f3e0c0] constant_id=5: 0.000000
[libplacebo @ 000002a442f3e0c0] constant_id=6: 64.000000
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 2.086 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 4.717 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] Spent 0.010 ms compiling shader
[libplacebo @ 000002a442f3e0c0] Spent 0.049 ms creating pipeline
[libplacebo @ 000002a442f3e0c0] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000002a442f3e0c0] LUT invalidated, regenerating..
[libplacebo @ 000002a442f3e0c0] Spent 0.001 ms generating shader LUT
[libplacebo @ 000002a442f3e0c0] (Re)creating 7680x4316x0 texture with format rgba16hf: src/renderer.c:2477
[libplacebo @ 000002a442f3e0c0] Allocating 1069809664 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 000002a442f3e0c0] Spent 2.568 ms allocating slab
[libplacebo @ 000002a442f3e0c0] vertex shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _2004;
[libplacebo @ 000002a442f3e0c0] [ 12] layout(offset=16) vec3 _4005;
[libplacebo @ 000002a442f3e0c0] [ 13] layout(offset=32) vec3 _4007;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(offset=48) mat3 _4004;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(offset=96) mat3 _4006;
[libplacebo @ 000002a442f3e0c0] [ 16] };
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=0) const float _4002 = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=1) const float _4003 = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=2) const float _c004 = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(constant_id=3) const float _2008 = 1;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(constant_id=4) const float _2009 = 1;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(constant_id=5) const float _200b = 1;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(constant_id=6) const float _200c = 1;
[libplacebo @ 000002a442f3e0c0] [ 24] layout(constant_id=7) const uint _200d = 1;
[libplacebo @ 000002a442f3e0c0] [ 25] layout(constant_id=8) const float _200e = 1;
[libplacebo @ 000002a442f3e0c0] [ 26] layout(constant_id=9) const float _200f = 1;
[libplacebo @ 000002a442f3e0c0] [ 27] layout(binding=0) uniform sampler2D _c002;
[libplacebo @ 000002a442f3e0c0] [ 28] layout(binding=1) uniform sampler2D _2002;
[libplacebo @ 000002a442f3e0c0] [ 29] layout(binding=2) uniform sampler2D _2006;
[libplacebo @ 000002a442f3e0c0] [ 30] layout(location=0) in vec2 _400a;
[libplacebo @ 000002a442f3e0c0] [ 31] layout(location=0) out vec2 _c003;
[libplacebo @ 000002a442f3e0c0] [ 32] layout(location=1) in vec2 _400b;
[libplacebo @ 000002a442f3e0c0] [ 33] layout(location=1) out vec2 _2003;
[libplacebo @ 000002a442f3e0c0] [ 34] layout(location=2) in vec2 _400c;
[libplacebo @ 000002a442f3e0c0] [ 35] void main() {
[libplacebo @ 000002a442f3e0c0] [ 36] _c003 = _400a;
[libplacebo @ 000002a442f3e0c0] [ 37] _2003 = _400b;
[libplacebo @ 000002a442f3e0c0] [ 38] vec2 va_pos = _400c;
[libplacebo @ 000002a442f3e0c0] [ 39] gl_Position = vec4(va_pos, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 40] }
[libplacebo @ 000002a442f3e0c0] fragment shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _2004;
[libplacebo @ 000002a442f3e0c0] [ 12] layout(offset=16) vec3 _4005;
[libplacebo @ 000002a442f3e0c0] [ 13] layout(offset=32) vec3 _4007;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(offset=48) mat3 _4004;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(offset=96) mat3 _4006;
[libplacebo @ 000002a442f3e0c0] [ 16] };
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=0) const float _4002 = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=1) const float _4003 = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=2) const float _c004 = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(constant_id=3) const float _2008 = 1;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(constant_id=4) const float _2009 = 1;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(constant_id=5) const float _200b = 1;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(constant_id=6) const float _200c = 1;
[libplacebo @ 000002a442f3e0c0] [ 24] layout(constant_id=7) const uint _200d = 1;
[libplacebo @ 000002a442f3e0c0] [ 25] layout(constant_id=8) const float _200e = 1;
[libplacebo @ 000002a442f3e0c0] [ 26] layout(constant_id=9) const float _200f = 1;
[libplacebo @ 000002a442f3e0c0] [ 27] layout(binding=0) uniform sampler2D _c002;
[libplacebo @ 000002a442f3e0c0] [ 28] layout(binding=1) uniform sampler2D _2002;
[libplacebo @ 000002a442f3e0c0] [ 29] layout(binding=2) uniform sampler2D _2006;
[libplacebo @ 000002a442f3e0c0] [ 30] layout(location=0) in vec2 _c003;
[libplacebo @ 000002a442f3e0c0] [ 31] layout(location=1) in vec2 _2003;
[libplacebo @ 000002a442f3e0c0] [ 32] layout(location=0) out vec4 out_color;
[libplacebo @ 000002a442f3e0c0] [ 33]
[libplacebo @ 000002a442f3e0c0] [ 34] vec4 _c001() {
[libplacebo @ 000002a442f3e0c0] [ 35] // pl_shader_sample_direct
[libplacebo @ 000002a442f3e0c0] [ 36] vec4 color = vec4(_c004) * textureLod(_c002, _c003, 0.0);
[libplacebo @ 000002a442f3e0c0] [ 37] return color;
[libplacebo @ 000002a442f3e0c0] [ 38] }
[libplacebo @ 000002a442f3e0c0] [ 39]
[libplacebo @ 000002a442f3e0c0] [ 40] #define _2007(x) (_2009 * (x) + _2008)
[libplacebo @ 000002a442f3e0c0] [ 41] #define _200a(x) (_200c * (x) + _200b)
[libplacebo @ 000002a442f3e0c0] [ 42] #define _2005(pos) (textureLod(_2006, vec2(
[libplacebo @ 000002a442f3e0c0] [ 43] _2007(vec2(pos).x)
[libplacebo @ 000002a442f3e0c0] [ 44] ,_200a(vec2(pos).y)
[libplacebo @ 000002a442f3e0c0] [ 45] ), 0.0).xyzw)
[libplacebo @ 000002a442f3e0c0] [ 46] vec4 _2001() {
[libplacebo @ 000002a442f3e0c0] [ 47]
[libplacebo @ 000002a442f3e0c0] [ 48] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 49] {
[libplacebo @ 000002a442f3e0c0] [ 50] vec2 pos = _2003, pt = _2004;
[libplacebo @ 000002a442f3e0c0] [ 51] vec2 size = vec2(textureSize(_2002, 0));
[libplacebo @ 000002a442f3e0c0] [ 52] vec2 dir = vec2(float(1), float(0));
[libplacebo @ 000002a442f3e0c0] [ 53] pt *= dir;
[libplacebo @ 000002a442f3e0c0] [ 54] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 000002a442f3e0c0] [ 55] float fcoord = dot(fcoord2, dir);
[libplacebo @ 000002a442f3e0c0] [ 56] vec2 base = pos - fcoord * pt - pt * vec2(float(2));
[libplacebo @ 000002a442f3e0c0] [ 57] vec4 ws;
[libplacebo @ 000002a442f3e0c0] [ 58] float off;
[libplacebo @ 000002a442f3e0c0] [ 59] vec2 c, ca = vec2(0.0);
[libplacebo @ 000002a442f3e0c0] [ 60] #pragma unroll 4
[libplacebo @ 000002a442f3e0c0] [ 61] for (uint n = 0u; n < _200d; n += uint(1)) {
[libplacebo @ 000002a442f3e0c0] [ 62] if (n % 4u == 0u)
[libplacebo @ 000002a442f3e0c0] [ 63] ws = _2005(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 000002a442f3e0c0] [ 64] off = float(n);
[libplacebo @ 000002a442f3e0c0] [ 65] c = textureLod(_2002, base + pt * off, 0.0).rg;
[libplacebo @ 000002a442f3e0c0] [ 66] ca += ws[n % 4u] * c;
[libplacebo @ 000002a442f3e0c0] [ 67] }
[libplacebo @ 000002a442f3e0c0] [ 68] color.rg = _200f * ca;
[libplacebo @ 000002a442f3e0c0] [ 69] }
[libplacebo @ 000002a442f3e0c0] [ 70] return color;
[libplacebo @ 000002a442f3e0c0] [ 71] }
[libplacebo @ 000002a442f3e0c0] [ 72]
[libplacebo @ 000002a442f3e0c0] [ 73] vec4 _4001() {
[libplacebo @ 000002a442f3e0c0] [ 74] vec4 color = vec4(_4003, vec2(_4002), 1.0);
[libplacebo @ 000002a442f3e0c0] [ 75] // pass_read_image
[libplacebo @ 000002a442f3e0c0] [ 76] {
[libplacebo @ 000002a442f3e0c0] [ 77] vec4 tmp;
[libplacebo @ 000002a442f3e0c0] [ 78] tmp = _c001();
[libplacebo @ 000002a442f3e0c0] [ 79] color[0] = tmp[0];
[libplacebo @ 000002a442f3e0c0] [ 80] tmp = _2001();
[libplacebo @ 000002a442f3e0c0] [ 81] color[1] = tmp[0];
[libplacebo @ 000002a442f3e0c0] [ 82] color[2] = tmp[1];
[libplacebo @ 000002a442f3e0c0] [ 83] }
[libplacebo @ 000002a442f3e0c0] [ 84] // pl_shader_decode_color
[libplacebo @ 000002a442f3e0c0] [ 85] {
[libplacebo @ 000002a442f3e0c0] [ 86] color.rgb = _4004 * color.rgb + _4005;
[libplacebo @ 000002a442f3e0c0] [ 87] }
[libplacebo @ 000002a442f3e0c0] [ 88] // pl_shader_encode_color
[libplacebo @ 000002a442f3e0c0] [ 89] {
[libplacebo @ 000002a442f3e0c0] [ 90] color.rgb = _4006 * color.rgb + _4007;
[libplacebo @ 000002a442f3e0c0] [ 91] }
[libplacebo @ 000002a442f3e0c0] [ 92] return color;
[libplacebo @ 000002a442f3e0c0] [ 93] }
[libplacebo @ 000002a442f3e0c0] [ 94]
[libplacebo @ 000002a442f3e0c0] [ 95] void main() {
[libplacebo @ 000002a442f3e0c0] [ 96] out_color = _4001();
[libplacebo @ 000002a442f3e0c0] [ 97] }
[libplacebo @ 000002a442f3e0c0] Specialization constant values:
[libplacebo @ 000002a442f3e0c0] constant_id=0: 0.500008
[libplacebo @ 000002a442f3e0c0] constant_id=1: 0.062501
[libplacebo @ 000002a442f3e0c0] constant_id=2: 64.000000
[libplacebo @ 000002a442f3e0c0] constant_id=3: 0.250000
[libplacebo @ 000002a442f3e0c0] constant_id=4: 0.500000
[libplacebo @ 000002a442f3e0c0] constant_id=5: 0.001953
[libplacebo @ 000002a442f3e0c0] constant_id=6: 0.996094
[libplacebo @ 000002a442f3e0c0] constant_id=7: 6
[libplacebo @ 000002a442f3e0c0] constant_id=8: 0.000000
[libplacebo @ 000002a442f3e0c0] constant_id=9: 1.000000
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 2.346 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 6.152 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] Spent 0.012 ms compiling shader
[libplacebo @ 000002a442f3e0c0] Spent 0.056 ms creating pipeline
[libplacebo @ 000002a442f3e0c0] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000002a442f3e0c0] LUT invalidated, regenerating..
[libplacebo @ 000002a442f3e0c0] Spent 20.190 ms generating shader LUT
[libplacebo @ 000002a442f3e0c0] Allocating 247680 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:533
[libplacebo @ 000002a442f3e0c0] Spent 0.737 ms allocating slab
[libplacebo @ 000002a442f3e0c0] Dithering to 10 bit depth
[libplacebo @ 000002a442f3e0c0] vertex shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(constant_id=0) const float _4 = 1;
[libplacebo @ 000002a442f3e0c0] [ 11] layout(constant_id=1) const float _7 = 1;
[libplacebo @ 000002a442f3e0c0] [ 12] layout(constant_id=2) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=3) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(location=0) in vec2 _d;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(location=0) out vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(location=1) in vec2 _e;
[libplacebo @ 000002a442f3e0c0] [ 19] void main() {
[libplacebo @ 000002a442f3e0c0] [ 20] _3 = _d;
[libplacebo @ 000002a442f3e0c0] [ 21] vec2 va_pos = _e;
[libplacebo @ 000002a442f3e0c0] [ 22] gl_Position = vec4(va_pos, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 23] }
[libplacebo @ 000002a442f3e0c0] fragment shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(constant_id=0) const float _4 = 1;
[libplacebo @ 000002a442f3e0c0] [ 11] layout(constant_id=1) const float _7 = 1;
[libplacebo @ 000002a442f3e0c0] [ 12] layout(constant_id=2) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=3) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(location=0) in vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(location=0) out vec4 out_color;
[libplacebo @ 000002a442f3e0c0] [ 18]
[libplacebo @ 000002a442f3e0c0] [ 19] #define _5(pos) (texelFetch(_6, ivec2(pos), 0).x)
[libplacebo @ 000002a442f3e0c0] [ 20] vec4 _1() {
[libplacebo @ 000002a442f3e0c0] [ 21] // pl_shader_sample_direct
[libplacebo @ 000002a442f3e0c0] [ 22] vec4 color = vec4(_4) * textureLod(_2, _3, 0.0);
[libplacebo @ 000002a442f3e0c0] [ 23] // pl_shader_dither
[libplacebo @ 000002a442f3e0c0] [ 24] {
[libplacebo @ 000002a442f3e0c0] [ 25] float bias;
[libplacebo @ 000002a442f3e0c0] [ 26] vec2 pos = fract(gl_FragCoord.xy * 1.0/_7);
[libplacebo @ 000002a442f3e0c0] [ 27] bias = _5(ivec2(pos * _8));
[libplacebo @ 000002a442f3e0c0] [ 28] const float scale = 1023.0;
[libplacebo @ 000002a442f3e0c0] [ 29] color = scale * color + vec4(bias);
[libplacebo @ 000002a442f3e0c0] [ 30] color = floor(color) * (1.0 / scale);
[libplacebo @ 000002a442f3e0c0] [ 31] }
[libplacebo @ 000002a442f3e0c0] [ 32] color *= vec4(1.0 / _9);
[libplacebo @ 000002a442f3e0c0] [ 33] vec4 _a = color;
[libplacebo @ 000002a442f3e0c0] [ 34] color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 35] color[0] = _a[0];
[libplacebo @ 000002a442f3e0c0] [ 36] return color;
[libplacebo @ 000002a442f3e0c0] [ 37] }
[libplacebo @ 000002a442f3e0c0] [ 38]
[libplacebo @ 000002a442f3e0c0] [ 39] void main() {
[libplacebo @ 000002a442f3e0c0] [ 40] out_color = _1();
[libplacebo @ 000002a442f3e0c0] [ 41] }
[libplacebo @ 000002a442f3e0c0] Specialization constant values:
[libplacebo @ 000002a442f3e0c0] constant_id=0: 1.000000
[libplacebo @ 000002a442f3e0c0] constant_id=1: 64.000000
[libplacebo @ 000002a442f3e0c0] constant_id=2: 64.000000
[libplacebo @ 000002a442f3e0c0] constant_id=3: 1.000000
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 1.854 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 2.396 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] Spent 0.011 ms compiling shader
[libplacebo @ 000002a442f3e0c0] Spent 0.051 ms creating pipeline
[libplacebo @ 000002a442f3e0c0] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000002a442f3e0c0] LUT invalidated, regenerating..
[libplacebo @ 000002a442f3e0c0] Spent 0.000 ms generating shader LUT
[libplacebo @ 000002a442f3e0c0] (Re)creating 7680x2158x0 texture with format rgba16hf: src/renderer.c:762
[libplacebo @ 000002a442f3e0c0] vertex shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _4;
[libplacebo @ 000002a442f3e0c0] [ 12] };
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=0) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(constant_id=1) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(constant_id=2) const float _b = 1;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(constant_id=3) const float _c = 1;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=4) const uint _d = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=5) const float _e = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=6) const float _f = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(location=0) in vec2 _12;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(location=0) out vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 24] layout(location=1) in vec2 _13;
[libplacebo @ 000002a442f3e0c0] [ 25] void main() {
[libplacebo @ 000002a442f3e0c0] [ 26] _3 = _12;
[libplacebo @ 000002a442f3e0c0] [ 27] vec2 va_pos = _13;
[libplacebo @ 000002a442f3e0c0] [ 28] gl_Position = vec4(va_pos, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 29] }
[libplacebo @ 000002a442f3e0c0] fragment shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _4;
[libplacebo @ 000002a442f3e0c0] [ 12] };
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=0) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(constant_id=1) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(constant_id=2) const float _b = 1;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(constant_id=3) const float _c = 1;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=4) const uint _d = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=5) const float _e = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=6) const float _f = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(location=0) in vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(location=0) out vec4 out_color;
[libplacebo @ 000002a442f3e0c0] [ 24]
[libplacebo @ 000002a442f3e0c0] [ 25] #define _7(x) (_9 * (x) + _8)
[libplacebo @ 000002a442f3e0c0] [ 26] #define _a(x) (_c * (x) + _b)
[libplacebo @ 000002a442f3e0c0] [ 27] #define _5(pos) (textureLod(_6, vec2(
[libplacebo @ 000002a442f3e0c0] [ 28] _7(vec2(pos).x)
[libplacebo @ 000002a442f3e0c0] [ 29] ,_a(vec2(pos).y)
[libplacebo @ 000002a442f3e0c0] [ 30] ), 0.0).xyzw)
[libplacebo @ 000002a442f3e0c0] [ 31] vec4 _1() {
[libplacebo @ 000002a442f3e0c0] [ 32]
[libplacebo @ 000002a442f3e0c0] [ 33] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 34] {
[libplacebo @ 000002a442f3e0c0] [ 35] vec2 pos = _3, pt = _4;
[libplacebo @ 000002a442f3e0c0] [ 36] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 000002a442f3e0c0] [ 37] vec2 dir = vec2(float(0), float(1));
[libplacebo @ 000002a442f3e0c0] [ 38] pt *= dir;
[libplacebo @ 000002a442f3e0c0] [ 39] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 000002a442f3e0c0] [ 40] float fcoord = dot(fcoord2, dir);
[libplacebo @ 000002a442f3e0c0] [ 41] vec2 base = pos - fcoord * pt - pt * vec2(float(3));
[libplacebo @ 000002a442f3e0c0] [ 42] vec4 ws;
[libplacebo @ 000002a442f3e0c0] [ 43] float off;
[libplacebo @ 000002a442f3e0c0] [ 44] vec2 c, ca = vec2(0.0);
[libplacebo @ 000002a442f3e0c0] [ 45] #pragma unroll 4
[libplacebo @ 000002a442f3e0c0] [ 46] for (uint n = 0u; n < _d; n += uint(1)) {
[libplacebo @ 000002a442f3e0c0] [ 47] if (n % 4u == 0u)
[libplacebo @ 000002a442f3e0c0] [ 48] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 000002a442f3e0c0] [ 49] off = float(n);
[libplacebo @ 000002a442f3e0c0] [ 50] c = textureLod(_2, base + pt * off, 0.0).gb;
[libplacebo @ 000002a442f3e0c0] [ 51] ca += ws[n % 4u] * c;
[libplacebo @ 000002a442f3e0c0] [ 52] }
[libplacebo @ 000002a442f3e0c0] [ 53] color.gb = _f * ca;
[libplacebo @ 000002a442f3e0c0] [ 54] }
[libplacebo @ 000002a442f3e0c0] [ 55] return color;
[libplacebo @ 000002a442f3e0c0] [ 56] }
[libplacebo @ 000002a442f3e0c0] [ 57]
[libplacebo @ 000002a442f3e0c0] [ 58] void main() {
[libplacebo @ 000002a442f3e0c0] [ 59] out_color = _1();
[libplacebo @ 000002a442f3e0c0] [ 60] }
[libplacebo @ 000002a442f3e0c0] Specialization constant values:
[libplacebo @ 000002a442f3e0c0] constant_id=0: 0.250000
[libplacebo @ 000002a442f3e0c0] constant_id=1: 0.500000
[libplacebo @ 000002a442f3e0c0] constant_id=2: 0.001953
[libplacebo @ 000002a442f3e0c0] constant_id=3: 0.996094
[libplacebo @ 000002a442f3e0c0] constant_id=4: 8
[libplacebo @ 000002a442f3e0c0] constant_id=5: 0.000000
[libplacebo @ 000002a442f3e0c0] constant_id=6: 1.000000
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 1.750 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 4.188 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] Spent 0.008 ms compiling shader
[libplacebo @ 000002a442f3e0c0] Spent 0.040 ms creating pipeline
[libplacebo @ 000002a442f3e0c0] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 000002a442f3e0c0] LUT invalidated, regenerating..
[libplacebo @ 000002a442f3e0c0] Spent 0.000 ms generating shader LUT
[libplacebo @ 000002a442f3e0c0] vertex shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _4;
[libplacebo @ 000002a442f3e0c0] [ 12] };
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=0) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(constant_id=1) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(constant_id=2) const float _b = 1;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(constant_id=3) const float _c = 1;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=4) const uint _d = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=5) const float _e = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=6) const float _f = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(constant_id=7) const float _12 = 1;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(constant_id=8) const float _13 = 1;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(constant_id=9) const float _14 = 1;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 24] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 25] layout(binding=2) uniform sampler2D _11;
[libplacebo @ 000002a442f3e0c0] [ 26] layout(location=0) in vec2 _18;
[libplacebo @ 000002a442f3e0c0] [ 27] layout(location=0) out vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 28] layout(location=1) in vec2 _19;
[libplacebo @ 000002a442f3e0c0] [ 29] void main() {
[libplacebo @ 000002a442f3e0c0] [ 30] _3 = _18;
[libplacebo @ 000002a442f3e0c0] [ 31] vec2 va_pos = _19;
[libplacebo @ 000002a442f3e0c0] [ 32] gl_Position = vec4(va_pos, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 33] }
[libplacebo @ 000002a442f3e0c0] fragment shader source:
[libplacebo @ 000002a442f3e0c0] [ 1] #version 450
[libplacebo @ 000002a442f3e0c0] [ 2] #extension GL_KHR_shader_subgroup_basic : enable
[libplacebo @ 000002a442f3e0c0] [ 3] #extension GL_KHR_shader_subgroup_vote : enable
[libplacebo @ 000002a442f3e0c0] [ 4] #extension GL_KHR_shader_subgroup_arithmetic : enable
[libplacebo @ 000002a442f3e0c0] [ 5] #extension GL_KHR_shader_subgroup_ballot : enable
[libplacebo @ 000002a442f3e0c0] [ 6] #extension GL_KHR_shader_subgroup_shuffle : enable
[libplacebo @ 000002a442f3e0c0] [ 7] #extension GL_KHR_shader_subgroup_clustered : enable
[libplacebo @ 000002a442f3e0c0] [ 8] #extension GL_KHR_shader_subgroup_quad : enable
[libplacebo @ 000002a442f3e0c0] [ 9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 000002a442f3e0c0] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 000002a442f3e0c0] [ 11] layout(offset=0) vec2 _4;
[libplacebo @ 000002a442f3e0c0] [ 12] };
[libplacebo @ 000002a442f3e0c0] [ 13] layout(constant_id=0) const float _8 = 1;
[libplacebo @ 000002a442f3e0c0] [ 14] layout(constant_id=1) const float _9 = 1;
[libplacebo @ 000002a442f3e0c0] [ 15] layout(constant_id=2) const float _b = 1;
[libplacebo @ 000002a442f3e0c0] [ 16] layout(constant_id=3) const float _c = 1;
[libplacebo @ 000002a442f3e0c0] [ 17] layout(constant_id=4) const uint _d = 1;
[libplacebo @ 000002a442f3e0c0] [ 18] layout(constant_id=5) const float _e = 1;
[libplacebo @ 000002a442f3e0c0] [ 19] layout(constant_id=6) const float _f = 1;
[libplacebo @ 000002a442f3e0c0] [ 20] layout(constant_id=7) const float _12 = 1;
[libplacebo @ 000002a442f3e0c0] [ 21] layout(constant_id=8) const float _13 = 1;
[libplacebo @ 000002a442f3e0c0] [ 22] layout(constant_id=9) const float _14 = 1;
[libplacebo @ 000002a442f3e0c0] [ 23] layout(binding=0) uniform sampler2D _2;
[libplacebo @ 000002a442f3e0c0] [ 24] layout(binding=1) uniform sampler2D _6;
[libplacebo @ 000002a442f3e0c0] [ 25] layout(binding=2) uniform sampler2D _11;
[libplacebo @ 000002a442f3e0c0] [ 26] layout(location=0) in vec2 _3;
[libplacebo @ 000002a442f3e0c0] [ 27] layout(location=0) out vec4 out_color;
[libplacebo @ 000002a442f3e0c0] [ 28]
[libplacebo @ 000002a442f3e0c0] [ 29] #define _7(x) (_9 * (x) + _8)
[libplacebo @ 000002a442f3e0c0] [ 30] #define _a(x) (_c * (x) + _b)
[libplacebo @ 000002a442f3e0c0] [ 31] #define _5(pos) (textureLod(_6, vec2(
[libplacebo @ 000002a442f3e0c0] [ 32] _7(vec2(pos).x)
[libplacebo @ 000002a442f3e0c0] [ 33] ,_a(vec2(pos).y)
[libplacebo @ 000002a442f3e0c0] [ 34] ), 0.0).xyzw)
[libplacebo @ 000002a442f3e0c0] [ 35] #define _10(pos) (texelFetch(_11, ivec2(pos), 0).x)
[libplacebo @ 000002a442f3e0c0] [ 36] vec4 _1() {
[libplacebo @ 000002a442f3e0c0] [ 37]
[libplacebo @ 000002a442f3e0c0] [ 38] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 39] {
[libplacebo @ 000002a442f3e0c0] [ 40] vec2 pos = _3, pt = _4;
[libplacebo @ 000002a442f3e0c0] [ 41] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 000002a442f3e0c0] [ 42] vec2 dir = vec2(float(1), float(0));
[libplacebo @ 000002a442f3e0c0] [ 43] pt *= dir;
[libplacebo @ 000002a442f3e0c0] [ 44] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 000002a442f3e0c0] [ 45] float fcoord = dot(fcoord2, dir);
[libplacebo @ 000002a442f3e0c0] [ 46] vec2 base = pos - fcoord * pt - pt * vec2(float(3));
[libplacebo @ 000002a442f3e0c0] [ 47] vec4 ws;
[libplacebo @ 000002a442f3e0c0] [ 48] float off;
[libplacebo @ 000002a442f3e0c0] [ 49] vec2 c, ca = vec2(0.0);
[libplacebo @ 000002a442f3e0c0] [ 50] #pragma unroll 4
[libplacebo @ 000002a442f3e0c0] [ 51] for (uint n = 0u; n < _d; n += uint(1)) {
[libplacebo @ 000002a442f3e0c0] [ 52] if (n % 4u == 0u)
[libplacebo @ 000002a442f3e0c0] [ 53] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 000002a442f3e0c0] [ 54] off = float(n);
[libplacebo @ 000002a442f3e0c0] [ 55] c = textureLod(_2, base + pt * off, 0.0).gb;
[libplacebo @ 000002a442f3e0c0] [ 56] ca += ws[n % 4u] * c;
[libplacebo @ 000002a442f3e0c0] [ 57] }
[libplacebo @ 000002a442f3e0c0] [ 58] color.gb = _f * ca;
[libplacebo @ 000002a442f3e0c0] [ 59] }
[libplacebo @ 000002a442f3e0c0] [ 60] // pl_shader_dither
[libplacebo @ 000002a442f3e0c0] [ 61] {
[libplacebo @ 000002a442f3e0c0] [ 62] float bias;
[libplacebo @ 000002a442f3e0c0] [ 63] vec2 pos = fract(gl_FragCoord.xy * 1.0/_12);
[libplacebo @ 000002a442f3e0c0] [ 64] bias = _10(ivec2(pos * _13));
[libplacebo @ 000002a442f3e0c0] [ 65] const float scale = 1023.0;
[libplacebo @ 000002a442f3e0c0] [ 66] color = scale * color + vec4(bias);
[libplacebo @ 000002a442f3e0c0] [ 67] color = floor(color) * (1.0 / scale);
[libplacebo @ 000002a442f3e0c0] [ 68] }
[libplacebo @ 000002a442f3e0c0] [ 69] color *= vec4(1.0 / _14);
[libplacebo @ 000002a442f3e0c0] [ 70] vec4 _15 = color;
[libplacebo @ 000002a442f3e0c0] [ 71] color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 000002a442f3e0c0] [ 72] color[0] = _15[1];
[libplacebo @ 000002a442f3e0c0] [ 73] color[1] = _15[2];
[libplacebo @ 000002a442f3e0c0] [ 74] return color;
[libplacebo @ 000002a442f3e0c0] [ 75] }
[libplacebo @ 000002a442f3e0c0] [ 76]
[libplacebo @ 000002a442f3e0c0] [ 77] void main() {
[libplacebo @ 000002a442f3e0c0] [ 78] out_color = _1();
[libplacebo @ 000002a442f3e0c0] [ 79] }
[libplacebo @ 000002a442f3e0c0] Specialization constant values:
[libplacebo @ 000002a442f3e0c0] constant_id=0: 0.250000
[libplacebo @ 000002a442f3e0c0] constant_id=1: 0.500000
[libplacebo @ 000002a442f3e0c0] constant_id=2: 0.001953
[libplacebo @ 000002a442f3e0c0] constant_id=3: 0.996094
[libplacebo @ 000002a442f3e0c0] constant_id=4: 8
[libplacebo @ 000002a442f3e0c0] constant_id=5: 0.000000
[libplacebo @ 000002a442f3e0c0] constant_id=6: 1.000000
[libplacebo @ 000002a442f3e0c0] constant_id=7: 64.000000
[libplacebo @ 000002a442f3e0c0] constant_id=8: 64.000000
[libplacebo @ 000002a442f3e0c0] constant_id=9: 1.000000
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 1.879 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 000002a442f3e0c0] Spent 5.313 ms translating SPIR-V
[libplacebo @ 000002a442f3e0c0] Spent 0.009 ms compiling shader
[libplacebo @ 000002a442f3e0c0] Spent 0.044 ms creating pipeline
[libplacebo @ 000002a442f3e0c0] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[hevc_qsv @ 000002a43bde0b40] Encoder: input is system memory surface
[hevc_qsv @ 000002a43bde0b40] Use Intel(R) oneVPL to create MFX session, the required implementation version is 1.1
[hevc_qsv @ 000002a43bde0b40] Initialized an internal MFX session using hardware accelerated implementation
[hevc_qsv @ 000002a43bde0b40] Using the intelligent constant quality (ICQ) ratecontrol method
[hevc_qsv @ 000002a43bde0b40] profile: hevc main10; level: 317
[hevc_qsv @ 000002a43bde0b40] GopPicSize: 120; GopRefDist: 8; GopOptFlag: closed; IdrInterval: 1
[hevc_qsv @ 000002a43bde0b40] TargetUsage: 1; RateControlMethod: ICQ
[hevc_qsv @ 000002a43bde0b40] ICQQuality: 14
[hevc_qsv @ 000002a43bde0b40] NumSlice: 1; NumRefFrame: 4
[hevc_qsv @ 000002a43bde0b40] RateDistortionOpt: unknown
[hevc_qsv @ 000002a43bde0b40] RecoveryPointSEI: unknown
[hevc_qsv @ 000002a43bde0b40] VDENC: ON
[hevc_qsv @ 000002a43bde0b40] NalHrdConformance: OFF; VuiNalHrdParameters: OFF
[hevc_qsv @ 000002a43bde0b40] FrameRateExtD: 1; FrameRateExtN: 25
[hevc_qsv @ 000002a43bde0b40] IntRefType: 0; IntRefCycleSize: 0; IntRefQPDelta: 0
[hevc_qsv @ 000002a43bde0b40] MaxFrameSize: 0; MaxSliceSize: 0
[hevc_qsv @ 000002a43bde0b40] BitrateLimit: unknown; MBBRC: OFF; ExtBRC: OFF
[hevc_qsv @ 000002a43bde0b40] Trellis: auto
[hevc_qsv @ 000002a43bde0b40] RepeatPPS: OFF; NumMbPerSlice: 0; LookAheadDS: unknown
[hevc_qsv @ 000002a43bde0b40] AdaptiveI: unknown; AdaptiveB: unknown; BRefType:pyramid
[hevc_qsv @ 000002a43bde0b40] MinQPI: 22; MaxQPI: 63; MinQPP: 22; MaxQPP: 63; MinQPB: 22; MaxQPB: 63
[hevc_qsv @ 000002a43bde0b40] DisableDeblockingIdc: 0
[hevc_qsv @ 000002a43bde0b40] SkipFrame: no_skip
[hevc_qsv @ 000002a43bde0b40] PRefType: default
[hevc_qsv @ 000002a43bde0b40] GPB: ON
[hevc_qsv @ 000002a43bde0b40] TransformSkip: ON
[hevc_qsv @ 000002a43bde0b40] IntRefCycleDist: 0
[hevc_qsv @ 000002a43bde0b40] LowDelayBRC: OFF
[hevc_qsv @ 000002a43bde0b40] MaxFrameSizeI: 0; MaxFrameSizeP: 0
[hevc_qsv @ 000002a43bde0b40] ScenarioInfo: 3
[hevc_qsv @ 000002a43bde0b40] NumTileColumns: 1; NumTileRows: 1
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[matroska @ 000002a43a0ce800] get_metadata_duration returned: 0
Output #0, matroska, to 'Georgia_PLC.mkv':
Metadata:
encoder : Lavf60.20.100
Stream #0:0, 0, 1/1000: Video: hevc, 1 reference frame, p010le(tv, bt2020nc/bt2020/smpte2084, progressive), 7680x4316 (0x0) [SAR 1:1 DAR 1920:1079], 0/1, q=2-31, 1000 kb/s, 25 fps, 1k tbn
Metadata:
encoder : Lavc60.39.100 hevc_qsv
Side data:
cpb: bitrate max/min/avg: 0/0/1000000 buffer size: 0 vbv_delay: N/A
[out#0/matroska @ 000002a43a0c7280] Starting thread...
[out_0_0 @ 000002a442f3fec0] EOF on sink link out_0_0:default.
[vf#0:0 @ 000002a43bde3140] Filtergraph returned EOF, finishing
[vf#0:0 @ 000002a43bde3140] All consumers returned EOF
[libplacebo @ 000002a442f3e0c0] Waiting for remaining commands...
[libplacebo @ 000002a442f3e0c0] Memory heaps supported by device:
[libplacebo @ 000002a442f3e0c0] 0: flags 0x1 size 5800M
[libplacebo @ 000002a442f3e0c0] 1: flags 0x0 size 31G
[libplacebo @ 000002a442f3e0c0] 2: flags 0x1 size 256M
[libplacebo @ 000002a442f3e0c0] Memory types supported by device:
[libplacebo @ 000002a442f3e0c0] 0: flags 0x1 heap 0
[libplacebo @ 000002a442f3e0c0] 1: flags 0x6 heap 1
[libplacebo @ 000002a442f3e0c0] 2: flags 0xe heap 1
[libplacebo @ 000002a442f3e0c0] 3: flags 0x7 heap 2
[libplacebo @ 000002a442f3e0c0] Memory pool 0:
[libplacebo @ 000002a442f3e0c0] Compatible types: 0xf
[libplacebo @ 000002a442f3e0c0] Optimal flags: 0x1
[libplacebo @ 000002a442f3e0c0] Slab 0: f x 63M: 0 used 0 res 255M alloc from heap 0, efficiency 100.00% [../src/utils/upload.c:356]
[libplacebo @ 000002a442f3e0c0] Slab 1: ff x 31M: 0 used 0 res 255M alloc from heap 0, efficiency 100.00% [src/renderer.c:1647]
[libplacebo @ 000002a442f3e0c0] Slab 2: ff x 32K: 0 used 0 res 256K alloc from heap 0, efficiency 100.00% [src/shaders/sampling.c:1007]
[libplacebo @ 000002a442f3e0c0] Slab 3: ff x 63M: 0 used 0 res 510M alloc from heap 0, efficiency 100.00% [src/renderer.c:762]
[libplacebo @ 000002a442f3e0c0] Slab 4: f x 255M: 0 used 0 res 1020M alloc from heap 0, efficiency 100.00% [src/renderer.c:762]
[libplacebo @ 000002a442f3e0c0] Pool summary: 0 used 0 res 2041M alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 000002a442f3e0c0] Memory pool 1:
[libplacebo @ 000002a442f3e0c0] Compatible types: 0xffffffff
[libplacebo @ 000002a442f3e0c0] Required flags: 0x1
[libplacebo @ 000002a442f3e0c0] Optimal flags: 0x2
[libplacebo @ 000002a442f3e0c0] Buffer flags: 0xc3
[libplacebo @ 000002a442f3e0c0] Slab 0: 3fffffffffffffff x 4224: 0 used 0 res 255K alloc from heap 2, efficiency 100.00% [../src/gpu/utils.c:1160]
[libplacebo @ 000002a442f3e0c0] Pool summary: 0 used 0 res 255K alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 000002a442f3e0c0] Memory pool 2:
[libplacebo @ 000002a442f3e0c0] Compatible types: 0xffffffff
[libplacebo @ 000002a442f3e0c0] Optimal flags: 0x3
[libplacebo @ 000002a442f3e0c0] Buffer flags: 0x3
[libplacebo @ 000002a442f3e0c0] Slab 0: 7fffffff x 8256: 0 used 0 res 249K alloc from heap 2, efficiency 100.00% [../src/gpu/utils.c:533]
[libplacebo @ 000002a442f3e0c0] Slab 1: 7fff x 16K: 0 used 0 res 241K alloc from heap 2, efficiency 100.00% [../src/gpu/utils.c:533]
[libplacebo @ 000002a442f3e0c0] Pool summary: 0 used 0 res 491K alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 000002a442f3e0c0] Memory summary: 0 used 0 res 2042M alloc, efficiency 100.00%, utilization 0.00%, max page: 362M
[libplacebo @ 000002a442f3e0c0] Freeing slab of size 255M
Last message repeated 1 times
[libplacebo @ 000002a442f3e0c0] Freeing slab of size 256K
[libplacebo @ 000002a442f3e0c0] Freeing slab of size 510M
[vost#0:0/hevc_qsv @ 000002a43bde0880] Encoder thread received EOF
[libplacebo @ 000002a442f3e0c0] Freeing slab of size 1020M
[libplacebo @ 000002a442f3e0c0] Freeing slab of size 255K
[libplacebo @ 000002a442f3e0c0] Freeing slab of size 249K
[libplacebo @ 000002a442f3e0c0] Freeing slab of size 241K
[vf#0:0 @ 000002a43bde3140] Terminating thread with return code 0 (success)
frame= 0 fps=0.0 q=0.0 size= 0KiB time=N/A bitrate=N/A speed=N/A
frame= 0 fps=0.0 q=0.0 size= 0KiB time=N/A bitrate=N/A speed=N/A
[vost#0:0/hevc_qsv @ 000002a43bde0880] Terminating thread with return code 0 (success)
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 32(VPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 33(SPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 34(PPS), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 39(SEI_PREFIX), nuh_layer_id: 0, temporal_id: 0
[hevc_metadata @ 000002a43bde2e40] nal_unit_type: 19(IDR_W_RADL), nuh_layer_id: 0, temporal_id: 0
[matroska @ 000002a43a0ce800] Starting new cluster with timestamp 0 at offset 703 bytes
[matroska @ 000002a43a0ce800] Writing block of size 867323 with pts 0, dts -120, duration 40 at relative offset 9 in cluster at offset 703. TrackNumber 1, keyframe 1
[out#0/matroska @ 000002a43a0c7280] All streams finished
[out#0/matroska @ 000002a43a0c7280] Terminating thread with return code 0 (success)
[matroska @ 000002a43a0ce800] end duration = 40
[matroska @ 000002a43a0ce800] stream 0 end duration = 40
[AVIOContext @ 000002a43bdf16c0] Statistics: 868739 bytes written, 2 seeks, 5 writeouts
[out#0/matroska @ 000002a43a0c7280] Output file #0 (Georgia_PLC.mkv):
[out#0/matroska @ 000002a43a0c7280] Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (867323 bytes);
[out#0/matroska @ 000002a43a0c7280] Total: 1 packets (867323 bytes) muxed
[out#0/matroska @ 000002a43a0c7280] video:847KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.087280%
frame= 1 fps=0.6 q=-0.0 Lsize= 848KiB time=-00:00:00.12 bitrate=N/A speed=N/A
[in#0/obu @ 000002a43a0cda40] Input file #0 (Georgia_1F.obu):
[in#0/obu @ 000002a43a0cda40] Input stream #0:0 (video): 1 packets read (834365 bytes); 1 frames decoded; 0 decode errors;
[in#0/obu @ 000002a43a0cda40] Total: 1 packets (834365 bytes) demuxed
[AVIOContext @ 000002a43a0ce300] Statistics: 834365 bytes read, 0 seeks

@Hrxn
Copy link

Hrxn commented Feb 18, 2024

btw, since when is there a free version of DaVinci Resolve?

@mightyhuhn
Copy link

here is ire 30 and ire 10 from the AVS HD 709 - Blu-ray & MP4 Calibration:
madVR ire10
mpv ire10
madVR ire30
mpv ire30
these are from calman apl
they agreed on IRE 50.
gpu and madVR agreed more but also not fully.
because the ycbcr-RGB conversation stuff seems perfectly fine maybe level conversion?
errors in normalization to 1?

i could switch to the native presentation mode of displaycal instead of madTPG for verification.

screens have been taking after long waiting times because my oled is very very unstable.

@Chipcraft
Copy link
Author

Chipcraft commented Feb 29, 2024

I knew it was a fool's errand however, decided to test anyways.

  • In addition to Intel (DG2) and AMD (Hawk Point), also NVIDIA (Ada) illustrates the same issue.
  • Went back to the oldest libplacebo (a28c2b4) version compatible with the recent FFMpeg releases, to see if this is caused by some of the more recent changes.

@Chipcraft
Copy link
Author

@haasn

Would it be correct to assume that using "libplacebo=format=yuv420p10le" on an input, that is already in yuv420p10le format would result in either a bit-exact output, or at the very least something with a difference below the limit of the human perception?

Even in this case, the output from libplacebo features the same exact issue, as the previous test cases.

ffmpeg -init_hw_device vulkan -s 3840x2160 -r 24000/1001 -pix_fmt yuv420p10le -i Source.yuv -c:v rawvideo -strict -1 -loglevel debug Out-NOP.yuv 2>Out-NOP.txt

Debug log
ffmpeg version N-113818-gab2173c0a5 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-libvpl --enable-nvenc --enable-libdav1d --enable-libaom --enable-libx264 --enable-libx265 --enable-libfdk_aac --enable-libopus --enable-libplacebo --enable-libvmaf --enable-libxml2 --enable-openssl --enable-gpl --enable-nonfree --cpu=x86-64-v3 --extra-libs=-lstdc++
  libavutil      58. 39.100 / 58. 39.100
  libavcodec     60. 40.100 / 60. 40.100
  libavformat    60. 21.101 / 60. 21.101
  libavdevice    60.  4.100 / 60.  4.100
  libavfilter     9. 17.100 /  9. 17.100
  libswscale      7.  6.100 /  7.  6.100
  libswresample   4. 13.100 /  4. 13.100
  libpostproc    57.  4.100 / 57.  4.100
Splitting the commandline.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'vulkan'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '3840x2160'.
Reading option '-r' ... matched as option 'r' (override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)) with argument '24000/1001'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv420p10le'.
Reading option '-i' ... matched as output url with argument 'Source.yuv'.
Reading option '-c:v' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'rawvideo'.
Reading option '-strict' ...Routing option strict to both codec and muxer layer
 matched as AVOption 'strict' with argument '-1'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option 'Out-NOP.yuv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option init_hw_device (initialise hardware device) with argument vulkan.
[AVHWDeviceContext @ 00000211e6a3db80] Supported validation layers:
[AVHWDeviceContext @ 00000211e6a3db80] 	VK_LAYER_VALVE_steam_overlay
[AVHWDeviceContext @ 00000211e6a3db80] 	VK_LAYER_VALVE_steam_fossilize
[AVHWDeviceContext @ 00000211e6a3db80] Using instance extension VK_KHR_portability_enumeration
[AVHWDeviceContext @ 00000211e6a3db80] GPU listing:
[AVHWDeviceContext @ 00000211e6a3db80]     0: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 00000211e6a3db80] Device 0 selected: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 00000211e6a3db80] Queue families:
[AVHWDeviceContext @ 00000211e6a3db80]     0: graphics compute transfer sparse (queues: 1)
[AVHWDeviceContext @ 00000211e6a3db80]     1: compute (queues: 1)
[AVHWDeviceContext @ 00000211e6a3db80]     2: transfer (queues: 1)
[AVHWDeviceContext @ 00000211e6a3db80]     3: decode (queues: 2)
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_push_descriptor
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_sampler_ycbcr_conversion
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_EXT_descriptor_buffer
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_EXT_shader_atomic_float
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_cooperative_matrix
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_EXT_external_memory_host
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_external_memory_win32
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_external_semaphore_win32
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_video_queue
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_video_decode_queue
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_video_decode_h264
[AVHWDeviceContext @ 00000211e6a3db80] Using device extension VK_KHR_video_decode_h265
[AVHWDeviceContext @ 00000211e6a3db80] Using device: Intel(R) Arc(TM) A380 Graphics
[AVHWDeviceContext @ 00000211e6a3db80] Alignments:
[AVHWDeviceContext @ 00000211e6a3db80]     optimalBufferCopyRowPitchAlignment: 64
[AVHWDeviceContext @ 00000211e6a3db80]     minMemoryMapAlignment:              64
[AVHWDeviceContext @ 00000211e6a3db80]     nonCoherentAtomSize:                1
[AVHWDeviceContext @ 00000211e6a3db80]     minImportedHostPointerAlignment:    4096
[AVHWDeviceContext @ 00000211e6a3db80] Using queue family 0 (queues: 1) for graphics
[AVHWDeviceContext @ 00000211e6a3db80] Using queue family 1 (queues: 1) for compute
[AVHWDeviceContext @ 00000211e6a3db80] Using queue family 2 (queues: 1) for transfers
[AVHWDeviceContext @ 00000211e6a3db80] Using queue family 3 (queues: 2) for decode
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url Source.yuv.
Applying option s (set frame size (WxH or abbreviation)) with argument 3840x2160.
Applying option r (override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)) with argument 24000/1001.
Applying option pix_fmt (set pixel format) with argument yuv420p10le.
Successfully parsed a group of options.
Opening an input file: Source.yuv.
[AVFormatContext @ 00000211e6b8d700] Opening 'Source.yuv' for reading
[file @ 00000211e6b8ed80] Setting default whitelist 'file,crypto,data'
[rawvideo @ 00000211e6b8d700] Format rawvideo probed with size=2048 and score=50
[rawvideo @ 00000211e6b8d700] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[rawvideo @ 00000211e6b8d700] All info found
[rawvideo @ 00000211e6b8d700] Estimating duration from bitrate, this may be inaccurate
[rawvideo @ 00000211e6b8d700] After avformat_find_stream_info() pos: 24883200 bytes read:24883200 seeks:0 frames:1
Input #0, rawvideo, from 'Source.yuv':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 4976640 kb/s
  Stream #0:0, 1, 1/25: Video: rawvideo, 1 reference frame (Y3[11][10] / 0xA0B3359), yuv420p10le, 3840x2160, 0/1, 4976640 kb/s, 25 tbr, 25 tbn
Successfully opened the file.
Parsing a group of options: output url Out-NOP.yuv.
Applying option c:v (select encoder/decoder ('copy' to copy stream without reencoding)) with argument rawvideo.
Successfully parsed a group of options.
Opening an output file: Out-NOP.yuv.
[out#0/rawvideo @ 00000211e6b87ac0] No explicit maps, mapping streams automatically...
[vost#0:0/rawvideo @ 00000211e6a50940] Created video stream from input stream 0:0
[file @ 00000211e6a43980] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native))
[vost#0:0/rawvideo @ 00000211e6a50940] Starting thread...
[vf#0:0 @ 00000211e6a3f2c0] Starting thread...
[vist#0:0/rawvideo @ 00000211e6a478c0] [dec:rawvideo @ 00000211e6a3f800] Starting thread...
[in#0/rawvideo @ 00000211e6b8d400] Starting thread...
Press [q] to stop, [?] for help
[rawvideo @ 00000211e6a40d00] PACKET SIZE: 24883200, STRIDE: 11520
Truncating packet of size 24883200 to 1
[in#0/rawvideo @ 00000211e6b8d400] EOF while reading input
detected 64 logical cores
[in#0/rawvideo @ 00000211e6b8d400] Terminating thread with return code 0 (success)
[vist#0:0/rawvideo @ 00000211e6a478c0] [dec:rawvideo @ 00000211e6a3f800] Decoder thread received EOF packet
[vist#0:0/rawvideo @ 00000211e6a478c0] [dec:rawvideo @ 00000211e6a3f800] Decoder returned EOF, finishing
[vist#0:0/rawvideo @ 00000211e6a478c0] [dec:rawvideo @ 00000211e6a3f800] Terminating thread with return code 0 (success)
[graph 0 input from stream 0:0 @ 00000211e6a425c0] Setting 'video_size' to value '3840x2160'
[graph 0 input from stream 0:0 @ 00000211e6a425c0] Setting 'pix_fmt' to value '62'
[graph 0 input from stream 0:0 @ 00000211e6a425c0] Setting 'time_base' to value '1001/24000'
[graph 0 input from stream 0:0 @ 00000211e6a425c0] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 00000211e6a425c0] Setting 'colorspace' to value '2'
[graph 0 input from stream 0:0 @ 00000211e6a425c0] Setting 'range' to value '0'
[graph 0 input from stream 0:0 @ 00000211e6a425c0] Setting 'frame_rate' to value '24000/1001'
[graph 0 input from stream 0:0 @ 00000211e6a425c0] w:3840 h:2160 pixfmt:yuv420p10le tb:1001/24000 fr:24000/1001 sar:0/1 csp:unknown range:unknown
[AVFilterGraph @ 00000211e6a45480] query_formats: 3 queried, 6 merged, 0 already done, 0 delayed
[graph 0 input from stream 0:0 @ 00000211e6a425c0] video frame properties congruent with link at pts_time: 0
Output #0, rawvideo, to 'Out-NOP.yuv':
  Metadata:
    encoder         : Lavf60.21.101
  Stream #0:0, 0, 1001/24000: Video: rawvideo, 1 reference frame (Y3[11][10] / 0xA0B3359), yuv420p10le(progressive), 3840x2160, 0/1, q=2-31, 2983000 kb/s, 23.98 fps, 23.98 tbn
      Metadata:
        encoder         : Lavc60.40.100 rawvideo
[out#0/rawvideo @ 00000211e6b87ac0] Starting thread...
[out_0_0 @ 00000211e6a42280] EOF on sink link out_0_0:default.
[vf#0:0 @ 00000211e6a3f2c0] Filtergraph returned EOF, finishing
[vf#0:0 @ 00000211e6a3f2c0] All consumers returned EOF
[vost#0:0/rawvideo @ 00000211e6a50940] Encoder thread received EOF
[vf#0:0 @ 00000211e6a3f2c0] Terminating thread with return code 0 (success)
[vost#0:0/rawvideo @ 00000211e6a50940] Terminating thread with return code 0 (success)
[out#0/rawvideo @ 00000211e6b87ac0] All streams finished
[out#0/rawvideo @ 00000211e6b87ac0] Terminating thread with return code 0 (success)
[AVIOContext @ 00000211e6a91040] Statistics: 24883200 bytes written, 0 seeks, 95 writeouts
[out#0/rawvideo @ 00000211e6b87ac0] Output file #0 (Out-NOP.yuv):
[out#0/rawvideo @ 00000211e6b87ac0]   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (24883200 bytes); 
[out#0/rawvideo @ 00000211e6b87ac0]   Total: 1 packets (24883200 bytes) muxed
[out#0/rawvideo @ 00000211e6b87ac0] video:24300KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.000000%
frame=    1 fps=0.0 q=-0.0 Lsize=   24300KiB time=00:00:00.04 bitrate=4772839.7kbits/s speed=2.28x    
[in#0/rawvideo @ 00000211e6b8d400] Input file #0 (Source.yuv):
[in#0/rawvideo @ 00000211e6b8d400]   Input stream #0:0 (video): 1 packets read (24883200 bytes); 1 frames decoded; 0 decode errors; 
[in#0/rawvideo @ 00000211e6b8d400]   Total: 1 packets (24883200 bytes) demuxed
[AVIOContext @ 00000211e6a46e40] Statistics: 24883200 bytes read, 0 seeks

ffmpeg -init_hw_device vulkan -s 3840x2160 -r 24000/1001 -pix_fmt yuv420p10le -i Source.yuv -vf libplacebo=format=yuv420p10le -c:v rawvideo -strict -1 -loglevel debug Out-PLC.yuv 2>Out-PLC.txt

Debug log
ffmpeg version N-113818-gab2173c0a5 Copyright (c) 2000-2024 the FFmpeg developers
  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-libvpl --enable-nvenc --enable-libdav1d --enable-libaom --enable-libx264 --enable-libx265 --enable-libfdk_aac --enable-libopus --enable-libplacebo --enable-libvmaf --enable-libxml2 --enable-openssl --enable-gpl --enable-nonfree --cpu=x86-64-v3 --extra-libs=-lstdc++
  libavutil      58. 39.100 / 58. 39.100
  libavcodec     60. 40.100 / 60. 40.100
  libavformat    60. 21.101 / 60. 21.101
  libavdevice    60.  4.100 / 60.  4.100
  libavfilter     9. 17.100 /  9. 17.100
  libswscale      7.  6.100 /  7.  6.100
  libswresample   4. 13.100 /  4. 13.100
  libpostproc    57.  4.100 / 57.  4.100
Splitting the commandline.
Reading option '-init_hw_device' ... matched as option 'init_hw_device' (initialise hardware device) with argument 'vulkan'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '3840x2160'.
Reading option '-r' ... matched as option 'r' (override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)) with argument '24000/1001'.
Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv420p10le'.
Reading option '-i' ... matched as output url with argument 'Source.yuv'.
Reading option '-vf' ... matched as option 'vf' (alias for -filter:v (apply filters to video streams)) with argument 'libplacebo=format=yuv420p10le'.
Reading option '-c:v' ... matched as option 'c' (select encoder/decoder ('copy' to copy stream without reencoding)) with argument 'rawvideo'.
Reading option '-strict' ...Routing option strict to both codec and muxer layer
 matched as AVOption 'strict' with argument '-1'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option 'Out-PLC.yuv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option init_hw_device (initialise hardware device) with argument vulkan.
[AVHWDeviceContext @ 0000023f7a85dc80] Supported validation layers:
[AVHWDeviceContext @ 0000023f7a85dc80] 	VK_LAYER_VALVE_steam_overlay
[AVHWDeviceContext @ 0000023f7a85dc80] 	VK_LAYER_VALVE_steam_fossilize
[AVHWDeviceContext @ 0000023f7a85dc80] Using instance extension VK_KHR_portability_enumeration
[AVHWDeviceContext @ 0000023f7a85dc80] GPU listing:
[AVHWDeviceContext @ 0000023f7a85dc80]     0: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 0000023f7a85dc80] Device 0 selected: Intel(R) Arc(TM) A380 Graphics (discrete) (0x56a5)
[AVHWDeviceContext @ 0000023f7a85dc80] Queue families:
[AVHWDeviceContext @ 0000023f7a85dc80]     0: graphics compute transfer sparse (queues: 1)
[AVHWDeviceContext @ 0000023f7a85dc80]     1: compute (queues: 1)
[AVHWDeviceContext @ 0000023f7a85dc80]     2: transfer (queues: 1)
[AVHWDeviceContext @ 0000023f7a85dc80]     3: decode (queues: 2)
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_push_descriptor
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_sampler_ycbcr_conversion
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_EXT_descriptor_buffer
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_EXT_shader_atomic_float
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_cooperative_matrix
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_EXT_external_memory_host
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_external_memory_win32
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_external_semaphore_win32
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_video_queue
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_video_decode_queue
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_video_decode_h264
[AVHWDeviceContext @ 0000023f7a85dc80] Using device extension VK_KHR_video_decode_h265
[AVHWDeviceContext @ 0000023f7a85dc80] Using device: Intel(R) Arc(TM) A380 Graphics
[AVHWDeviceContext @ 0000023f7a85dc80] Alignments:
[AVHWDeviceContext @ 0000023f7a85dc80]     optimalBufferCopyRowPitchAlignment: 64
[AVHWDeviceContext @ 0000023f7a85dc80]     minMemoryMapAlignment:              64
[AVHWDeviceContext @ 0000023f7a85dc80]     nonCoherentAtomSize:                1
[AVHWDeviceContext @ 0000023f7a85dc80]     minImportedHostPointerAlignment:    4096
[AVHWDeviceContext @ 0000023f7a85dc80] Using queue family 0 (queues: 1) for graphics
[AVHWDeviceContext @ 0000023f7a85dc80] Using queue family 1 (queues: 1) for compute
[AVHWDeviceContext @ 0000023f7a85dc80] Using queue family 2 (queues: 1) for transfers
[AVHWDeviceContext @ 0000023f7a85dc80] Using queue family 3 (queues: 2) for decode
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url Source.yuv.
Applying option s (set frame size (WxH or abbreviation)) with argument 3840x2160.
Applying option r (override input framerate/convert to given output framerate (Hz value, fraction or abbreviation)) with argument 24000/1001.
Applying option pix_fmt (set pixel format) with argument yuv420p10le.
Successfully parsed a group of options.
Opening an input file: Source.yuv.
[AVFormatContext @ 0000023f78efd780] Opening 'Source.yuv' for reading
[file @ 0000023f78efedc0] Setting default whitelist 'file,crypto,data'
[rawvideo @ 0000023f78efd780] Format rawvideo probed with size=2048 and score=50
[rawvideo @ 0000023f78efd780] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1
[rawvideo @ 0000023f78efd780] All info found
[rawvideo @ 0000023f78efd780] Estimating duration from bitrate, this may be inaccurate
[rawvideo @ 0000023f78efd780] After avformat_find_stream_info() pos: 24883200 bytes read:24883200 seeks:0 frames:1
Input #0, rawvideo, from 'Source.yuv':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 4976640 kb/s
  Stream #0:0, 1, 1/25: Video: rawvideo, 1 reference frame (Y3[11][10] / 0xA0B3359), yuv420p10le, 3840x2160, 0/1, 4976640 kb/s, 25 tbr, 25 tbn
Successfully opened the file.
Parsing a group of options: output url Out-PLC.yuv.
Applying option vf (alias for -filter:v (apply filters to video streams)) with argument libplacebo=format=yuv420p10le.
Applying option c:v (select encoder/decoder ('copy' to copy stream without reencoding)) with argument rawvideo.
Successfully parsed a group of options.
Opening an output file: Out-PLC.yuv.
[out#0/rawvideo @ 0000023f78ef7480] No explicit maps, mapping streams automatically...
[vost#0:0/rawvideo @ 0000023f7a870a00] Created video stream from input stream 0:0
[AVFilterGraph @ 0000023f7a85f980] Setting 'format' to value 'yuv420p10le'
[libplacebo @ 0000023f7a8603c0] Initialized libplacebo v7.346.0 (v6.338.0-85-ge987124b) (API v346)
[file @ 0000023f7a8626c0] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native))
[vost#0:0/rawvideo @ 0000023f7a870a00] Starting thread...
[vf#0:0 @ 0000023f7a85f440] Starting thread...
[vist#0:0/rawvideo @ 0000023f7a867a00] [dec:rawvideo @ 0000023f7a863e80] Starting thread...
[in#0/rawvideo @ 0000023f78efd480] Starting thread...
Press [q] to stop, [?] for help
[rawvideo @ 0000023f7a865280] PACKET SIZE: 24883200, STRIDE: 11520
Truncating packet of size 24883200 to 1
[AVFilterGraph @ 0000023f7a865fc0] Setting 'format' to value 'yuv420p10le'
[in#0/rawvideo @ 0000023f78efd480] EOF while reading input
detected 64 logical cores
[in#0/rawvideo @ 0000023f78efd480] Terminating thread with return code 0 (success)
[vist#0:0/rawvideo @ 0000023f7a867a00] [dec:rawvideo @ 0000023f7a863e80] Decoder thread received EOF packet
[vist#0:0/rawvideo @ 0000023f7a867a00] [dec:rawvideo @ 0000023f7a863e80] Decoder returned EOF, finishing
[vist#0:0/rawvideo @ 0000023f7a867a00] [dec:rawvideo @ 0000023f7a863e80] Terminating thread with return code 0 (success)
[libplacebo @ 0000023f7a8b5a40] Initialized libplacebo v7.346.0 (v6.338.0-85-ge987124b) (API v346)
[graph 0 input from stream 0:0 @ 0000023f7a861600] Setting 'video_size' to value '3840x2160'
[graph 0 input from stream 0:0 @ 0000023f7a861600] Setting 'pix_fmt' to value '62'
[graph 0 input from stream 0:0 @ 0000023f7a861600] Setting 'time_base' to value '1001/24000'
[graph 0 input from stream 0:0 @ 0000023f7a861600] Setting 'pixel_aspect' to value '0/1'
[graph 0 input from stream 0:0 @ 0000023f7a861600] Setting 'colorspace' to value '2'
[graph 0 input from stream 0:0 @ 0000023f7a861600] Setting 'range' to value '0'
[graph 0 input from stream 0:0 @ 0000023f7a861600] Setting 'frame_rate' to value '24000/1001'
[graph 0 input from stream 0:0 @ 0000023f7a861600] w:3840 h:2160 pixfmt:yuv420p10le tb:1001/24000 fr:24000/1001 sar:0/1 csp:unknown range:unknown
[libplacebo @ 0000023f7a8b5a40] Imported vulkan device properties:
[libplacebo @ 0000023f7a8b5a40]     Device Name: Intel(R) Arc(TM) A380 Graphics
[libplacebo @ 0000023f7a8b5a40]     Device ID: 8086:56a5
[libplacebo @ 0000023f7a8b5a40]     Device UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 0000023f7a8b5a40]     Driver version: 1954d2
[libplacebo @ 0000023f7a8b5a40]     API version: 1.3.275
[libplacebo @ 0000023f7a8b5a40] Restricting API version to 1.3.0... new version 1.3.0
[libplacebo @ 0000023f7a8b5a40] Memory heaps supported by device:
[libplacebo @ 0000023f7a8b5a40]     0: flags 0x1 size 5800M
[libplacebo @ 0000023f7a8b5a40]     1: flags 0x0 size   31G
[libplacebo @ 0000023f7a8b5a40]     2: flags 0x1 size  256M
[libplacebo @ 0000023f7a8b5a40] Memory types supported by device:
[libplacebo @ 0000023f7a8b5a40]     0: flags 0x1 heap 0
[libplacebo @ 0000023f7a8b5a40]     1: flags 0x6 heap 1
[libplacebo @ 0000023f7a8b5a40]     2: flags 0xe heap 1
[libplacebo @ 0000023f7a8b5a40]     3: flags 0x7 heap 2
[libplacebo @ 0000023f7a8b5a40] Memory summary:     0 used     0 res     0 alloc, efficiency 100.00%, utilization 100.00%, max page:  362M
[libplacebo @ 0000023f7a8b5a40] shaderc SPIR-V version 1.6 rev 1
[libplacebo @ 0000023f7a8b5a40] Initialized SPIR-V compiler 'shaderc'
[libplacebo @ 0000023f7a8b5a40] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT (0x10) is not exportable
[libplacebo @ 0000023f7a8b5a40] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) is not exportable
[libplacebo @ 0000023f7a8b5a40] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) is not importable
[libplacebo @ 0000023f7a8b5a40] Handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT (0x10) is not exportable
[libplacebo @ 0000023f7a8b5a40] Tex caps for VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT (0x4) unsupported: VK_ERROR_FORMAT_NOT_SUPPORTED
    Last message repeated 1 times
[libplacebo @ 0000023f7a8b5a40] Minimum texel alignment: 48
[libplacebo @ 0000023f7a8b5a40] GPU information:
[libplacebo @ 0000023f7a8b5a40]     GLSL version: 450 (vulkan)
[libplacebo @ 0000023f7a8b5a40]       max_shmem_size:            32768
[libplacebo @ 0000023f7a8b5a40]       max_group_threads:         1024
[libplacebo @ 0000023f7a8b5a40]       max_group_size[0]:         1024
[libplacebo @ 0000023f7a8b5a40]       max_group_size[1]:         1024
[libplacebo @ 0000023f7a8b5a40]       max_group_size[2]:         64
[libplacebo @ 0000023f7a8b5a40]       subgroup_size:             32
[libplacebo @ 0000023f7a8b5a40]       min_gather_offset:         -32
[libplacebo @ 0000023f7a8b5a40]       max_gather_offset:         31
[libplacebo @ 0000023f7a8b5a40]     Limits:
[libplacebo @ 0000023f7a8b5a40]       thread_safe:               1
[libplacebo @ 0000023f7a8b5a40]       callbacks:                 1
[libplacebo @ 0000023f7a8b5a40]       max_buf_size:              34290857984
[libplacebo @ 0000023f7a8b5a40]       max_ubo_size:              134217724
[libplacebo @ 0000023f7a8b5a40]       max_ssbo_size:             1073741820
[libplacebo @ 0000023f7a8b5a40]       max_vbo_size:              6081740800
[libplacebo @ 0000023f7a8b5a40]       max_mapped_size:           34290857984
[libplacebo @ 0000023f7a8b5a40]       max_buffer_texels:         134217728
[libplacebo @ 0000023f7a8b5a40]       align_host_ptr:            4096
[libplacebo @ 0000023f7a8b5a40]       host_cached:               1
[libplacebo @ 0000023f7a8b5a40]       max_tex_1d_dim:            16384
[libplacebo @ 0000023f7a8b5a40]       max_tex_2d_dim:            16384
[libplacebo @ 0000023f7a8b5a40]       max_tex_3d_dim:            2048
[libplacebo @ 0000023f7a8b5a40]       blittable_1d_3d:           1
[libplacebo @ 0000023f7a8b5a40]       buf_transfer:              1
[libplacebo @ 0000023f7a8b5a40]       align_tex_xfer_pitch:      64
[libplacebo @ 0000023f7a8b5a40]       align_tex_xfer_offset:     64
[libplacebo @ 0000023f7a8b5a40]       max_variable_comps:        0
[libplacebo @ 0000023f7a8b5a40]       max_constants:             18446744073709551615
[libplacebo @ 0000023f7a8b5a40]       max_pushc_size:            256
[libplacebo @ 0000023f7a8b5a40]       align_vertex_stride:       1
[libplacebo @ 0000023f7a8b5a40]       max_dispatch[0]:           65536
[libplacebo @ 0000023f7a8b5a40]       max_dispatch[1]:           65536
[libplacebo @ 0000023f7a8b5a40]       max_dispatch[2]:           65536
[libplacebo @ 0000023f7a8b5a40]       fragment_queues:           1
[libplacebo @ 0000023f7a8b5a40]       compute_queues:            1
[libplacebo @ 0000023f7a8b5a40]     External API interop:
[libplacebo @ 0000023f7a8b5a40]       UUID: 86:80:A5:56:05:00:00:00:03:00:00:00:00:00:00:00
[libplacebo @ 0000023f7a8b5a40]       PCI: 0000:00:00:0
[libplacebo @ 0000023f7a8b5a40]       buf export caps: 0x2
[libplacebo @ 0000023f7a8b5a40]       buf import caps: 0x12
[libplacebo @ 0000023f7a8b5a40]       tex export caps: 0x2
[libplacebo @ 0000023f7a8b5a40]       tex import caps: 0x12
[libplacebo @ 0000023f7a8b5a40]       sync export caps: 0x2
[libplacebo @ 0000023f7a8b5a40]       sync import caps: 0x0
[libplacebo @ 0000023f7a8b5a40] GPU texture formats:
[libplacebo @ 0000023f7a8b5a40]     NAME                 TYPE   SIZE COMP CAPS         EMU DEPTH         HOST_BITS     GLSL_TYPE  GLSL_FMT   FOURCC
[libplacebo @ 0000023f7a8b5a40]     r8                   UNORM  1    R    SsLRbBVutHWG n   {8  0  0  0 } {8  0  0  0 } float      r8         R8    
[libplacebo @ 0000023f7a8b5a40]     r8s                  SNORM  1    R    SsLRbBVutHWG n   {8  0  0  0 } {8  0  0  0 } float      r8_snorm         
[libplacebo @ 0000023f7a8b5a40]     rg8                  UNORM  2    RG   SsLRbBVutHWG n   {8  8  0  0 } {8  8  0  0 } vec2       rg8        GR88  
[libplacebo @ 0000023f7a8b5a40]     rg8s                 SNORM  2    RG   SsLRbBVutHWG n   {8  8  0  0 } {8  8  0  0 } vec2       rg8_snorm        
[libplacebo @ 0000023f7a8b5a40]     rgba8                UNORM  4    RGBA SsLRbBVutHWG n   {8  8  8  8 } {8  8  8  8 } vec4       rgba8      AB24  
[libplacebo @ 0000023f7a8b5a40]     rgba8s               SNORM  4    RGBA SsLRbBVutHWG n   {8  8  8  8 } {8  8  8  8 } vec4       rgba8_snorm       
[libplacebo @ 0000023f7a8b5a40]     bgra8                UNORM  4    BGRA SsLRbBVutHWG n   {8  8  8  8 } {8  8  8  8 } vec4       rgba8      AR24  
[libplacebo @ 0000023f7a8b5a40]     rgb10a2              UNORM  4    RGBA SsLRbBVutHWG n   {10 10 10 2 } {10 10 10 2 } vec4       rgb10_a2   AB30  
[libplacebo @ 0000023f7a8b5a40]     bgr10a2              UNORM  4    BGRA SsLRbBVutHWG n   {10 10 10 2 } {10 10 10 2 } vec4       rgb10_a2   AR30  
[libplacebo @ 0000023f7a8b5a40]     r16                  UNORM  2    R    SsLRbBVutHWG n   {16 0  0  0 } {16 0  0  0 } float      r16        R16   
[libplacebo @ 0000023f7a8b5a40]     r16hf                FLOAT  2    R    SsLRbBVutHWG n   {16 0  0  0 } {16 0  0  0 } float      r16f             
[libplacebo @ 0000023f7a8b5a40]     r16s                 SNORM  2    R    SsLRbBVutHWG n   {16 0  0  0 } {16 0  0  0 } float      r16_snorm        
[libplacebo @ 0000023f7a8b5a40]     rg16                 UNORM  4    RG   SsLRbBVutHWG n   {16 16 0  0 } {16 16 0  0 } vec2       rg16       GR32  
[libplacebo @ 0000023f7a8b5a40]     rg16hf               FLOAT  4    RG   SsLRbBVutHWG n   {16 16 0  0 } {16 16 0  0 } vec2       rg16f            
[libplacebo @ 0000023f7a8b5a40]     rg16s                SNORM  4    RG   SsLRbBVutHWG n   {16 16 0  0 } {16 16 0  0 } vec2       rg16_snorm       
[libplacebo @ 0000023f7a8b5a40]     rgba16               UNORM  8    RGBA SsLRbBVutHWG n   {16 16 16 16} {16 16 16 16} vec4       rgba16           
[libplacebo @ 0000023f7a8b5a40]     rgba16hf             FLOAT  8    RGBA SsLRbBVutHWG n   {16 16 16 16} {16 16 16 16} vec4       rgba16f    AB4H  
[libplacebo @ 0000023f7a8b5a40]     rgba16s              SNORM  8    RGBA SsLRbBVutHWG n   {16 16 16 16} {16 16 16 16} vec4       rgba16_snorm       
[libplacebo @ 0000023f7a8b5a40]     r32f                 FLOAT  4    R    SsLRbBVutHWG n   {32 0  0  0 } {32 0  0  0 } float      r32f             
[libplacebo @ 0000023f7a8b5a40]     rg32f                FLOAT  8    RG   SsLRbBVutHWG n   {32 32 0  0 } {32 32 0  0 } vec2       rg32f            
[libplacebo @ 0000023f7a8b5a40]     rgba32f              FLOAT  16   RGBA SsLRbBVutHWG n   {32 32 32 32} {32 32 32 32} vec4       rgba32f          
[libplacebo @ 0000023f7a8b5a40]     rgb565               UNORM  2    RGB  SsLRbB-utHWG n   {5  6  5  0 } {5  6  5  0 } vec3                  BG16  
[libplacebo @ 0000023f7a8b5a40]     bgr5a1               UNORM  2    BGRA SsLRbB-utHWG n   {5  5  5  1 } {5  5  5  1 } vec4                  AR15  
[libplacebo @ 0000023f7a8b5a40]     bgr565               UNORM  2    BGR  SsLRbB-utHWG n   {5  6  5  0 } {5  6  5  0 } vec3                  RG16  
[libplacebo @ 0000023f7a8b5a40]     r8i                  SINT   1    R    Ss-R-BVutHWG n   {8  0  0  0 } {8  0  0  0 } int        r8i              
[libplacebo @ 0000023f7a8b5a40]     r8u                  UINT   1    R    Ss-R-BVutHWG n   {8  0  0  0 } {8  0  0  0 } uint       r8ui             
[libplacebo @ 0000023f7a8b5a40]     rg8i                 SINT   2    RG   Ss-R-BVutHWG n   {8  8  0  0 } {8  8  0  0 } ivec2      rg8i             
[libplacebo @ 0000023f7a8b5a40]     rg8u                 UINT   2    RG   Ss-R-BVutHWG n   {8  8  0  0 } {8  8  0  0 } uvec2      rg8ui            
[libplacebo @ 0000023f7a8b5a40]     rgba8i               SINT   4    RGBA Ss-R-BVutHWG n   {8  8  8  8 } {8  8  8  8 } ivec4      rgba8i           
[libplacebo @ 0000023f7a8b5a40]     rgba8u               UINT   4    RGBA Ss-R-BVutHWG n   {8  8  8  8 } {8  8  8  8 } uvec4      rgba8ui          
[libplacebo @ 0000023f7a8b5a40]     rgb10a2u             UINT   4    RGBA Ss-R-BVutHWG n   {10 10 10 2 } {10 10 10 2 } uvec4      rgb10_a2ui       
[libplacebo @ 0000023f7a8b5a40]     r16i                 SINT   2    R    Ss-R-BVutHWG n   {16 0  0  0 } {16 0  0  0 } int        r16i             
[libplacebo @ 0000023f7a8b5a40]     r16u                 UINT   2    R    Ss-R-BVutHWG n   {16 0  0  0 } {16 0  0  0 } uint       r16ui            
[libplacebo @ 0000023f7a8b5a40]     rg16i                SINT   4    RG   Ss-R-BVutHWG n   {16 16 0  0 } {16 16 0  0 } ivec2      rg16i            
[libplacebo @ 0000023f7a8b5a40]     rg16u                UINT   4    RG   Ss-R-BVutHWG n   {16 16 0  0 } {16 16 0  0 } uvec2      rg16ui           
[libplacebo @ 0000023f7a8b5a40]     rgba16i              SINT   8    RGBA Ss-R-BVutHWG n   {16 16 16 16} {16 16 16 16} ivec4      rgba16i          
[libplacebo @ 0000023f7a8b5a40]     rgba16u              UINT   8    RGBA Ss-R-BVutHWG n   {16 16 16 16} {16 16 16 16} uvec4      rgba16ui         
[libplacebo @ 0000023f7a8b5a40]     r32i                 SINT   4    R    Ss-R-BVutHWG n   {32 0  0  0 } {32 0  0  0 } int        r32i             
[libplacebo @ 0000023f7a8b5a40]     r32u                 UINT   4    R    Ss-R-BVutHWG n   {32 0  0  0 } {32 0  0  0 } uint       r32ui            
[libplacebo @ 0000023f7a8b5a40]     rg32i                SINT   8    RG   Ss-R-BVutHWG n   {32 32 0  0 } {32 32 0  0 } ivec2      rg32i            
[libplacebo @ 0000023f7a8b5a40]     rg32u                UINT   8    RG   Ss-R-BVutHWG n   {32 32 0  0 } {32 32 0  0 } uvec2      rg32ui           
[libplacebo @ 0000023f7a8b5a40]     rgba32i              SINT   16   RGBA Ss-R-BVutHWG n   {32 32 32 32} {32 32 32 32} ivec4      rgba32i          
[libplacebo @ 0000023f7a8b5a40]     rgba32u              UINT   16   RGBA Ss-R-BVutHWG n   {32 32 32 32} {32 32 32 32} uvec4      rgba32ui         
[libplacebo @ 0000023f7a8b5a40]     a1bgr5               UNORM  2    ABGR S-LRbB-u-H-G n   {1  5  5  5 } {1  5  5  5 } vec4                  RA15  
[libplacebo @ 0000023f7a8b5a40]     argb4                UNORM  2    ARGB S-LRbB-u-H-G n   {4  4  4  4 } {4  4  4  4 } vec4                  BA12  
[libplacebo @ 0000023f7a8b5a40]     abgr4                UNORM  2    ABGR S-LRbB-u-H-G n   {4  4  4  4 } {4  4  4  4 } vec4                  RA12  
[libplacebo @ 0000023f7a8b5a40]     a1rgb5               UNORM  2    ARGB S-LR---u-H-G n   {1  5  5  5 } {1  5  5  5 } vec4                  BA15  
[libplacebo @ 0000023f7a8b5a40]     rgb8                 UNORM  3    RGB  S-L---Vu-H-G n   {8  8  8  0 } {8  8  8  0 } vec3                  BG24  
[libplacebo @ 0000023f7a8b5a40]     rgb8s                SNORM  3    RGB  S-L---Vu-H-G n   {8  8  8  0 } {8  8  8  0 } vec3                        
[libplacebo @ 0000023f7a8b5a40]     rgb16                UNORM  6    RGB  S-L---Vu-H-G n   {16 16 16 0 } {16 16 16 0 } vec3                        
[libplacebo @ 0000023f7a8b5a40]     rgb16hf              FLOAT  6    RGB  S-L---Vu-H-G n   {16 16 16 0 } {16 16 16 0 } vec3                        
[libplacebo @ 0000023f7a8b5a40]     rgb16s               SNORM  6    RGB  S-L---Vu-H-G n   {16 16 16 0 } {16 16 16 0 } vec3                        
[libplacebo @ 0000023f7a8b5a40]     rgb32f               FLOAT  12   RGB  S-----Vu-H-G n   {32 32 32 0 } {32 32 32 0 } vec3                        
[libplacebo @ 0000023f7a8b5a40]     rgb32i               SINT   12   RGB  S-----Vu-H-G n   {32 32 32 0 } {32 32 32 0 } ivec3                       
[libplacebo @ 0000023f7a8b5a40]     rgb32u               UINT   12   RGB  S-----Vu-H-G n   {32 32 32 0 } {32 32 32 0 } uvec3                       
[libplacebo @ 0000023f7a8b5a40]     rgb8i                SINT   3    RGB  S-----V--H-G n   {8  8  8  0 } {8  8  8  0 } ivec3                       
[libplacebo @ 0000023f7a8b5a40]     rgb8u                UINT   3    RGB  S-----V--H-G n   {8  8  8  0 } {8  8  8  0 } uvec3                       
[libplacebo @ 0000023f7a8b5a40]     rgb10a2i             SINT   4    RGBA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } ivec4                       
[libplacebo @ 0000023f7a8b5a40]     rgb10a2s             SNORM  4    RGBA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } vec4                        
[libplacebo @ 0000023f7a8b5a40]     bgr10a2i             SINT   4    BGRA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } ivec4                       
[libplacebo @ 0000023f7a8b5a40]     bgr10a2s             SNORM  4    BGRA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } vec4                        
[libplacebo @ 0000023f7a8b5a40]     bgr10a2u             UINT   4    BGRA ------V--H-- n   {10 10 10 2 } {10 10 10 2 } uvec4                       
[libplacebo @ 0000023f7a8b5a40]     rgb16i               SINT   6    RGB  ------V--H-- n   {16 16 16 0 } {16 16 16 0 } ivec3                       
[libplacebo @ 0000023f7a8b5a40]     rgb16u               UINT   6    RGB  ------V--H-- n   {16 16 16 0 } {16 16 16 0 } uvec3                       
[libplacebo @ 0000023f7a8b5a40]     gr4                  UNORM  1    GR   ---------H-- n   {4  4  0  0 } {4  4  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     bgr8                 UNORM  3    BGR  ---------H-- n   {8  8  8  0 } {8  8  8  0 }                       RG24  
[libplacebo @ 0000023f7a8b5a40]     bgr8i                SINT   3    BGR  ---------H-- n   {8  8  8  0 } {8  8  8  0 }                             
[libplacebo @ 0000023f7a8b5a40]     bgr8u                UINT   3    BGR  ---------H-- n   {8  8  8  0 } {8  8  8  0 }                             
[libplacebo @ 0000023f7a8b5a40]     bgra8i               SINT   4    BGRA ---------H-- n   {8  8  8  8 } {8  8  8  8 }                             
[libplacebo @ 0000023f7a8b5a40]     bgra8u               UINT   4    BGRA ---------H-- n   {8  8  8  8 } {8  8  8  8 }                             
[libplacebo @ 0000023f7a8b5a40]     rx10                 UNORM  2    R    ---------H-- n   {10 0  0  0 } {16 0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     rxgx10               UNORM  4    RG   ---------H-- n   {10 10 0  0 } {16 16 0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     rx12                 UNORM  2    R    ---------H-- n   {12 0  0  0 } {16 0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     rxgx12               UNORM  4    RG   ---------H-- n   {12 12 0  0 } {16 16 0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     r16f                 FLOAT  4    R    SsLRbB---HWG y   {16 0  0  0 } {32 0  0  0 }            r16f             
[libplacebo @ 0000023f7a8b5a40]     rg16f                FLOAT  8    RG   SsLRbB---HWG y   {16 16 0  0 } {32 32 0  0 }            rg16f            
[libplacebo @ 0000023f7a8b5a40]     rgba16f              FLOAT  16   RGBA SsLRbB---HWG y   {16 16 16 16} {32 32 32 32}            rgba16f          
[libplacebo @ 0000023f7a8b5a40]     rgb16f               FLOAT  12   RGB  S-L------H-G y   {16 16 16 0 } {32 32 32 0 }                             
[libplacebo @ 0000023f7a8b5a40]     g8_b8_r8_420         UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       YU12  
[libplacebo @ 0000023f7a8b5a40]     g8_b8_r8_422         UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       YU16  
[libplacebo @ 0000023f7a8b5a40]     g8_b8_r8_444         UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       YU24  
[libplacebo @ 0000023f7a8b5a40]     g8_br8_420           UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       NV12  
[libplacebo @ 0000023f7a8b5a40]     g8_br8_422           UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       NV16  
[libplacebo @ 0000023f7a8b5a40]     g8_br8_444           UNORM  0         ------------ n   {8  8  8  0 } {0  0  0  0 }                       NV24  
[libplacebo @ 0000023f7a8b5a40]     gx10_bx10_rx10_420   UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     gx10_bx10_rx10_422   UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     gx10_bx10_rx10_444   UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                       Q410  
[libplacebo @ 0000023f7a8b5a40]     gx10_bxrx10_420      UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                       P010  
[libplacebo @ 0000023f7a8b5a40]     gx10_bxrx10_422      UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                       P210  
[libplacebo @ 0000023f7a8b5a40]     gx10_bxrx10_444      UNORM  0         ------------ n   {10 10 10 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     gx12_bx12_rx12_420   UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     gx12_bx12_rx12_422   UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     gx12_bx12_rx12_444   UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     gx12_bxrx12_420      UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                       P012  
[libplacebo @ 0000023f7a8b5a40]     gx12_bxrx12_422      UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     gx12_bxrx12_444      UNORM  0         ------------ n   {12 12 12 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     g16_b16_r16_420      UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     g16_b16_r16_422      UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     g16_b16_r16_444      UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     g16_br16_420         UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                       P016  
[libplacebo @ 0000023f7a8b5a40]     g16_br16_422         UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[libplacebo @ 0000023f7a8b5a40]     g16_br16_444         UNORM  0         ------------ n   {16 16 16 0 } {0  0  0  0 }                             
[AVFilterGraph @ 0000023f7a865fc0] query_formats: 3 queried, 6 merged, 0 already done, 0 delayed
[graph 0 input from stream 0:0 @ 0000023f7a861600] video frame properties congruent with link at pts_time: 0
[libplacebo @ 0000023f7a8b5a40] (Re)creating 3840x2160x0 texture with format r16: ../src/utils/upload.c:245
[libplacebo @ 0000023f7a8b5a40] Allocating 67108864 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 0000023f7a8b5a40] Spent 0.254 ms allocating slab
[libplacebo @ 0000023f7a8b5a40] Imported host pointer is not page-aligned. This should normally be fine on most platforms, but may cause issues in some rare circumstances.
[libplacebo @ 0000023f7a8b5a40] (Re)creating 1920x1080x0 texture with format r16: ../src/utils/upload.c:245
[libplacebo @ 0000023f7a8b5a40] Allocating 16728064 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 0000023f7a8b5a40] Spent 0.080 ms allocating slab
[libplacebo @ 0000023f7a8b5a40] (Re)creating 1920x1080x0 texture with format r16: ../src/utils/upload.c:245
[libplacebo @ 0000023f7a8b5a40] (Re)creating 3840x2160x0 texture with format r16: ../src/utils/upload.c:356
[libplacebo @ 0000023f7a8b5a40] (Re)creating 1920x1080x0 texture with format r16: ../src/utils/upload.c:356
    Last message repeated 1 times
[libplacebo @ 0000023f7a8b5a40] (Re)creating 1920x1080x0 texture with format rg16: src/renderer.c:1652
[libplacebo @ 0000023f7a8b5a40] vertex shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 11] layout(constant_id=1) const float _8004 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 12] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(binding=1) uniform  sampler2D _8002;
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(location=0) in vec2 _7;
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(location=0) out vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(location=1) in vec2 _8;
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(location=1) out vec2 _8003;
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(location=2) in vec2 _9;
[libplacebo @ 0000023f7a8b5a40] [ 19] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 20] _3 = _7;
[libplacebo @ 0000023f7a8b5a40] [ 21] _8003 = _8;
[libplacebo @ 0000023f7a8b5a40] [ 22] vec2 va_pos = _9; 
[libplacebo @ 0000023f7a8b5a40] [ 23] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 24] }
[libplacebo @ 0000023f7a8b5a40] fragment shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 11] layout(constant_id=1) const float _8004 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 12] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(binding=1) uniform  sampler2D _8002;
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(location=0) in vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(location=1) in vec2 _8003;
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(location=0) out vec4 out_color;
[libplacebo @ 0000023f7a8b5a40] [ 17] 
[libplacebo @ 0000023f7a8b5a40] [ 18] vec4 _8001() {
[libplacebo @ 0000023f7a8b5a40] [ 19] // pl_shader_sample_direct                            
[libplacebo @ 0000023f7a8b5a40] [ 20] vec4 color = vec4(_8004) * textureLod(_8002, _8003, 0.0);   
[libplacebo @ 0000023f7a8b5a40] [ 21] return color;
[libplacebo @ 0000023f7a8b5a40] [ 22] }
[libplacebo @ 0000023f7a8b5a40] [ 23] 
[libplacebo @ 0000023f7a8b5a40] [ 24] vec4 _1() {
[libplacebo @ 0000023f7a8b5a40] [ 25] // pl_shader_sample_direct                            
[libplacebo @ 0000023f7a8b5a40] [ 26] vec4 color = vec4(_4) * textureLod(_2, _3, 0.0);   
[libplacebo @ 0000023f7a8b5a40] [ 27] {                 
[libplacebo @ 0000023f7a8b5a40] [ 28] vec4 tmp = _8001(); 
[libplacebo @ 0000023f7a8b5a40] [ 29] color[1] = tmp[0]; 
[libplacebo @ 0000023f7a8b5a40] [ 30] } 
[libplacebo @ 0000023f7a8b5a40] [ 31] return color;
[libplacebo @ 0000023f7a8b5a40] [ 32] }
[libplacebo @ 0000023f7a8b5a40] [ 33] 
[libplacebo @ 0000023f7a8b5a40] [ 34] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 35] out_color = _1();
[libplacebo @ 0000023f7a8b5a40] [ 36] }
[libplacebo @ 0000023f7a8b5a40] Specialization constant values:
[libplacebo @ 0000023f7a8b5a40]   constant_id=0: 1.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=1: 1.000000
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 72.831 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 1.896 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] Spent 0.014 ms compiling shader
[libplacebo @ 0000023f7a8b5a40] Spent 0.558 ms creating pipeline
[libplacebo @ 0000023f7a8b5a40] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 0000023f7a8b5a40] Allocating 261888 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:1160
[libplacebo @ 0000023f7a8b5a40] Spent 0.403 ms allocating slab
[libplacebo @ 0000023f7a8b5a40] LUT invalidated, regenerating..
[libplacebo @ 0000023f7a8b5a40] Spent 0.000 ms generating shader LUT
[libplacebo @ 0000023f7a8b5a40] Allocating 262144 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 0000023f7a8b5a40] Spent 0.041 ms allocating slab
[libplacebo @ 0000023f7a8b5a40] Allocating 261888 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:533
[libplacebo @ 0000023f7a8b5a40] Spent 0.567 ms allocating slab
[libplacebo @ 0000023f7a8b5a40] (Re)creating 3840x2160x0 texture with format rgba16hf: src/renderer.c:2514
[libplacebo @ 0000023f7a8b5a40] Allocating 267649024 memory of type 0x1 (id 0) in heap 0: ../src/utils/upload.c:245
[libplacebo @ 0000023f7a8b5a40] Spent 0.673 ms allocating slab
[libplacebo @ 0000023f7a8b5a40] compute shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_ARB_compute_shader : enable
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [ 10] #extension GL_ARB_shader_image_load_store : enable
[libplacebo @ 0000023f7a8b5a40] [ 11] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 12] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 13]     layout(offset=0) vec2 _2004;
[libplacebo @ 0000023f7a8b5a40] [ 14]     layout(offset=16) vec3 _4005;
[libplacebo @ 0000023f7a8b5a40] [ 15]     layout(offset=32) vec3 _4007;
[libplacebo @ 0000023f7a8b5a40] [ 16]     layout(offset=48) vec2 _4008;
[libplacebo @ 0000023f7a8b5a40] [ 17]     layout(offset=56) vec2 _4009;
[libplacebo @ 0000023f7a8b5a40] [ 18]     layout(offset=64) vec2 _400a;
[libplacebo @ 0000023f7a8b5a40] [ 19]     layout(offset=72) vec2 _400b;
[libplacebo @ 0000023f7a8b5a40] [ 20]     layout(offset=80) vec2 _400c;
[libplacebo @ 0000023f7a8b5a40] [ 21]     layout(offset=88) vec2 _400d;
[libplacebo @ 0000023f7a8b5a40] [ 22]     layout(offset=96) vec2 _400e;
[libplacebo @ 0000023f7a8b5a40] [ 23]     layout(offset=104) vec2 _400f;
[libplacebo @ 0000023f7a8b5a40] [ 24]     layout(offset=112) vec2 _4010;
[libplacebo @ 0000023f7a8b5a40] [ 25]     layout(offset=120) ivec2 _4012;
[libplacebo @ 0000023f7a8b5a40] [ 26]     layout(offset=128) mat3 _4004;
[libplacebo @ 0000023f7a8b5a40] [ 27]     layout(offset=176) mat3 _4006;
[libplacebo @ 0000023f7a8b5a40] [ 28] };
[libplacebo @ 0000023f7a8b5a40] [ 29] layout(constant_id=0) const float _4002 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 30] layout(constant_id=1) const float _4003 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 31] layout(constant_id=2) const float _c004 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 32] layout(constant_id=3) const float _2005 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 33] layout(constant_id=4) const float _2009 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 34] layout(constant_id=5) const float _200a = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 35] layout(constant_id=6) const float _200b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 36] layout(constant_id=7) const int _200d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 37] layout(constant_id=8) const int _200e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 38] layout(constant_id=9) const float _200f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 39] layout(binding=0) uniform  sampler2D _c002;
[libplacebo @ 0000023f7a8b5a40] [ 40] layout(binding=1) uniform  sampler2D _2002;
[libplacebo @ 0000023f7a8b5a40] [ 41] layout(binding=2) uniform  sampler1D _2007;
[libplacebo @ 0000023f7a8b5a40] [ 42] layout(binding=3, rgba16f) writeonly restrict uniform image2D _4011;
[libplacebo @ 0000023f7a8b5a40] [ 43] layout (local_size_x = 32, local_size_y = 32) in;
[libplacebo @ 0000023f7a8b5a40] [ 44] #define frag_pos(id) (vec2(id) + vec2(0.5))  
[libplacebo @ 0000023f7a8b5a40] [ 45] #define frag_map(id) (_4008 * frag_pos(id))    
[libplacebo @ 0000023f7a8b5a40] [ 46] #define gl_FragCoord vec4(frag_pos(gl_GlobalInvocationID), 0.0, 1.0) 
[libplacebo @ 0000023f7a8b5a40] [ 47] #define _c003_map(id) (mix(mix(_4009, _400a, frag_map(id).x),      mix(_400b, _400c, frag_map(id).x), frag_map(id).y)) 
[libplacebo @ 0000023f7a8b5a40] [ 48] #define _c003 (_c003_map(gl_GlobalInvocationID)) 
[libplacebo @ 0000023f7a8b5a40] [ 49] #define _2003_map(id) (mix(mix(_400d, _400e, frag_map(id).x),      mix(_400f, _4010, frag_map(id).x), frag_map(id).y)) 
[libplacebo @ 0000023f7a8b5a40] [ 50] #define _2003 (_2003_map(gl_GlobalInvocationID)) 
[libplacebo @ 0000023f7a8b5a40] [ 51] 
[libplacebo @ 0000023f7a8b5a40] [ 52] vec4 _c001() {
[libplacebo @ 0000023f7a8b5a40] [ 53] // pl_shader_sample_direct                            
[libplacebo @ 0000023f7a8b5a40] [ 54] vec4 color = vec4(_c004) * textureLod(_c002, _c003, 0.0);   
[libplacebo @ 0000023f7a8b5a40] [ 55] return color;
[libplacebo @ 0000023f7a8b5a40] [ 56] }
[libplacebo @ 0000023f7a8b5a40] [ 57] 
[libplacebo @ 0000023f7a8b5a40] [ 58] #define _2008(x) (_200a * (x) + _2009) 
[libplacebo @ 0000023f7a8b5a40] [ 59] #define _2006(pos) (textureLod(_2007, float(\
[libplacebo @ 0000023f7a8b5a40] [ 60]     _2008(float(pos))\
[libplacebo @ 0000023f7a8b5a40] [ 61]   ), 0.0).x)
[libplacebo @ 0000023f7a8b5a40] [ 62] shared vec2 _200c_base; 
[libplacebo @ 0000023f7a8b5a40] [ 63] shared float _200c_0[_200e * _200d]; 
[libplacebo @ 0000023f7a8b5a40] [ 64] shared float _200c_1[_200e * _200d]; 
[libplacebo @ 0000023f7a8b5a40] [ 65] vec4 _2001() {
[libplacebo @ 0000023f7a8b5a40] [ 66] // pl_shader_sample_polar                     
[libplacebo @ 0000023f7a8b5a40] [ 67] vec4 color = vec4(0.0);                       
[libplacebo @ 0000023f7a8b5a40] [ 68] {                                             
[libplacebo @ 0000023f7a8b5a40] [ 69] vec2 pos = _2003, pt = _2004;                     
[libplacebo @ 0000023f7a8b5a40] [ 70] vec2 size = vec2(textureSize(_2002, 0));        
[libplacebo @ 0000023f7a8b5a40] [ 71] vec2 fcoord = fract(pos * size - vec2(0.5));  
[libplacebo @ 0000023f7a8b5a40] [ 72] vec2 base = pos - pt * fcoord;                
[libplacebo @ 0000023f7a8b5a40] [ 73] vec2 center = base + pt * vec2(0.5);          
[libplacebo @ 0000023f7a8b5a40] [ 74] ivec2 offset;                                 
[libplacebo @ 0000023f7a8b5a40] [ 75] float w, d, wsum = 0.0;                       
[libplacebo @ 0000023f7a8b5a40] [ 76] int idx;                                      
[libplacebo @ 0000023f7a8b5a40] [ 77] vec4 c;                                       
[libplacebo @ 0000023f7a8b5a40] [ 78] uvec2 base_id = uvec2(0u); 
[libplacebo @ 0000023f7a8b5a40] [ 79] if (gl_LocalInvocationID.xy == base_id)               
[libplacebo @ 0000023f7a8b5a40] [ 80]     _200c_base = base;                                  
[libplacebo @ 0000023f7a8b5a40] [ 81] barrier();                                            
[libplacebo @ 0000023f7a8b5a40] [ 82] ivec2 rel = ivec2(round((base - _200c_base) * size));   
[libplacebo @ 0000023f7a8b5a40] [ 83] for (int y = int(gl_LocalInvocationID.y); y < _200e; y += 32) {     
[libplacebo @ 0000023f7a8b5a40] [ 84] for (int x = int(gl_LocalInvocationID.x); x < _200d; x += 32) {     
[libplacebo @ 0000023f7a8b5a40] [ 85] c = textureLod(_2002, _200c_base + pt * vec2(x - 3, y - 3), 0.0);   
[libplacebo @ 0000023f7a8b5a40] [ 86] _200c_0[_200d * y + x] = c[0]; 
[libplacebo @ 0000023f7a8b5a40] [ 87] _200c_1[_200d * y + x] = c[1]; 
[libplacebo @ 0000023f7a8b5a40] [ 88] }}                     
[libplacebo @ 0000023f7a8b5a40] [ 89] barrier();             
[libplacebo @ 0000023f7a8b5a40] [ 90] idx = _200d * rel.y + rel.x + _200d * 0 + 0; 
[libplacebo @ 0000023f7a8b5a40] [ 91] idx = _200d * rel.y + rel.x + _200d * 0 + 1; 
[libplacebo @ 0000023f7a8b5a40] [ 92] idx = _200d * rel.y + rel.x + _200d * 0 + 2; 
[libplacebo @ 0000023f7a8b5a40] [ 93] idx = _200d * rel.y + rel.x + _200d * 0 + 3; 
[libplacebo @ 0000023f7a8b5a40] [ 94] offset = ivec2(0, -3);
[libplacebo @ 0000023f7a8b5a40] [ 95] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [ 96] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [ 97] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [ 98] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [ 99] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [100] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [101] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [102] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [103] }
[libplacebo @ 0000023f7a8b5a40] [104] idx = _200d * rel.y + rel.x + _200d * 0 + 4; 
[libplacebo @ 0000023f7a8b5a40] [105] offset = ivec2(1, -3);
[libplacebo @ 0000023f7a8b5a40] [106] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [107] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [108] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [109] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [110] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [111] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [112] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [113] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [114] }
[libplacebo @ 0000023f7a8b5a40] [115] idx = _200d * rel.y + rel.x + _200d * 0 + 5; 
[libplacebo @ 0000023f7a8b5a40] [116] idx = _200d * rel.y + rel.x + _200d * 0 + 6; 
[libplacebo @ 0000023f7a8b5a40] [117] idx = _200d * rel.y + rel.x + _200d * 0 + 7; 
[libplacebo @ 0000023f7a8b5a40] [118] idx = _200d * rel.y + rel.x + _200d * 1 + 0; 
[libplacebo @ 0000023f7a8b5a40] [119] idx = _200d * rel.y + rel.x + _200d * 1 + 1; 
[libplacebo @ 0000023f7a8b5a40] [120] offset = ivec2(-2, -2);
[libplacebo @ 0000023f7a8b5a40] [121] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [122] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [123] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [124] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [125] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [126] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [127] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [128] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [129] }
[libplacebo @ 0000023f7a8b5a40] [130] idx = _200d * rel.y + rel.x + _200d * 1 + 2; 
[libplacebo @ 0000023f7a8b5a40] [131] offset = ivec2(-1, -2);
[libplacebo @ 0000023f7a8b5a40] [132] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [133] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [134] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [135] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [136] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [137] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [138] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [139] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [140] }
[libplacebo @ 0000023f7a8b5a40] [141] idx = _200d * rel.y + rel.x + _200d * 1 + 3; 
[libplacebo @ 0000023f7a8b5a40] [142] offset = ivec2(0, -2);
[libplacebo @ 0000023f7a8b5a40] [143] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [144] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [145] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [146] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [147] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [148] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [149] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [150] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [151] }
[libplacebo @ 0000023f7a8b5a40] [152] idx = _200d * rel.y + rel.x + _200d * 1 + 4; 
[libplacebo @ 0000023f7a8b5a40] [153] offset = ivec2(1, -2);
[libplacebo @ 0000023f7a8b5a40] [154] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [155] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [156] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [157] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [158] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [159] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [160] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [161] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [162] }
[libplacebo @ 0000023f7a8b5a40] [163] idx = _200d * rel.y + rel.x + _200d * 1 + 5; 
[libplacebo @ 0000023f7a8b5a40] [164] offset = ivec2(2, -2);
[libplacebo @ 0000023f7a8b5a40] [165] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [166] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [167] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [168] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [169] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [170] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [171] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [172] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [173] }
[libplacebo @ 0000023f7a8b5a40] [174] idx = _200d * rel.y + rel.x + _200d * 1 + 6; 
[libplacebo @ 0000023f7a8b5a40] [175] offset = ivec2(3, -2);
[libplacebo @ 0000023f7a8b5a40] [176] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [177] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [178] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [179] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [180] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [181] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [182] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [183] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [184] }
[libplacebo @ 0000023f7a8b5a40] [185] idx = _200d * rel.y + rel.x + _200d * 1 + 7; 
[libplacebo @ 0000023f7a8b5a40] [186] idx = _200d * rel.y + rel.x + _200d * 2 + 0; 
[libplacebo @ 0000023f7a8b5a40] [187] idx = _200d * rel.y + rel.x + _200d * 2 + 1; 
[libplacebo @ 0000023f7a8b5a40] [188] offset = ivec2(-2, -1);
[libplacebo @ 0000023f7a8b5a40] [189] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [190] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [191] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [192] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [193] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [194] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [195] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [196] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [197] }
[libplacebo @ 0000023f7a8b5a40] [198] idx = _200d * rel.y + rel.x + _200d * 2 + 2; 
[libplacebo @ 0000023f7a8b5a40] [199] offset = ivec2(-1, -1);
[libplacebo @ 0000023f7a8b5a40] [200] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [201] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [202] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [203] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [204] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [205] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [206] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [207] idx = _200d * rel.y + rel.x + _200d * 2 + 3; 
[libplacebo @ 0000023f7a8b5a40] [208] offset = ivec2(0, -1);
[libplacebo @ 0000023f7a8b5a40] [209] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [210] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [211] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [212] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [213] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [214] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [215] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [216] idx = _200d * rel.y + rel.x + _200d * 2 + 4; 
[libplacebo @ 0000023f7a8b5a40] [217] offset = ivec2(1, -1);
[libplacebo @ 0000023f7a8b5a40] [218] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [219] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [220] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [221] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [222] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [223] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [224] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [225] idx = _200d * rel.y + rel.x + _200d * 2 + 5; 
[libplacebo @ 0000023f7a8b5a40] [226] offset = ivec2(2, -1);
[libplacebo @ 0000023f7a8b5a40] [227] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [228] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [229] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [230] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [231] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [232] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [233] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [234] idx = _200d * rel.y + rel.x + _200d * 2 + 6; 
[libplacebo @ 0000023f7a8b5a40] [235] offset = ivec2(3, -1);
[libplacebo @ 0000023f7a8b5a40] [236] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [237] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [238] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [239] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [240] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [241] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [242] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [243] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [244] }
[libplacebo @ 0000023f7a8b5a40] [245] idx = _200d * rel.y + rel.x + _200d * 2 + 7; 
[libplacebo @ 0000023f7a8b5a40] [246] idx = _200d * rel.y + rel.x + _200d * 3 + 0; 
[libplacebo @ 0000023f7a8b5a40] [247] offset = ivec2(-3, 0);
[libplacebo @ 0000023f7a8b5a40] [248] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [249] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [250] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [251] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [252] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [253] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [254] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [255] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [256] }
[libplacebo @ 0000023f7a8b5a40] [257] idx = _200d * rel.y + rel.x + _200d * 3 + 1; 
[libplacebo @ 0000023f7a8b5a40] [258] offset = ivec2(-2, 0);
[libplacebo @ 0000023f7a8b5a40] [259] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [260] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [261] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [262] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [263] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [264] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [265] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [266] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [267] }
[libplacebo @ 0000023f7a8b5a40] [268] idx = _200d * rel.y + rel.x + _200d * 3 + 2; 
[libplacebo @ 0000023f7a8b5a40] [269] offset = ivec2(-1, 0);
[libplacebo @ 0000023f7a8b5a40] [270] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [271] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [272] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [273] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [274] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [275] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [276] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [277] idx = _200d * rel.y + rel.x + _200d * 3 + 3; 
[libplacebo @ 0000023f7a8b5a40] [278] offset = ivec2(0, 0);
[libplacebo @ 0000023f7a8b5a40] [279] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [280] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [281] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [282] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [283] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [284] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [285] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [286] idx = _200d * rel.y + rel.x + _200d * 3 + 4; 
[libplacebo @ 0000023f7a8b5a40] [287] offset = ivec2(1, 0);
[libplacebo @ 0000023f7a8b5a40] [288] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [289] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [290] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [291] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [292] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [293] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [294] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [295] idx = _200d * rel.y + rel.x + _200d * 3 + 5; 
[libplacebo @ 0000023f7a8b5a40] [296] offset = ivec2(2, 0);
[libplacebo @ 0000023f7a8b5a40] [297] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [298] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [299] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [300] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [301] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [302] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [303] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [304] idx = _200d * rel.y + rel.x + _200d * 3 + 6; 
[libplacebo @ 0000023f7a8b5a40] [305] offset = ivec2(3, 0);
[libplacebo @ 0000023f7a8b5a40] [306] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [307] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [308] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [309] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [310] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [311] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [312] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [313] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [314] }
[libplacebo @ 0000023f7a8b5a40] [315] idx = _200d * rel.y + rel.x + _200d * 3 + 7; 
[libplacebo @ 0000023f7a8b5a40] [316] offset = ivec2(4, 0);
[libplacebo @ 0000023f7a8b5a40] [317] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [318] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [319] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [320] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [321] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [322] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [323] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [324] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [325] }
[libplacebo @ 0000023f7a8b5a40] [326] idx = _200d * rel.y + rel.x + _200d * 4 + 0; 
[libplacebo @ 0000023f7a8b5a40] [327] offset = ivec2(-3, 1);
[libplacebo @ 0000023f7a8b5a40] [328] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [329] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [330] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [331] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [332] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [333] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [334] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [335] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [336] }
[libplacebo @ 0000023f7a8b5a40] [337] idx = _200d * rel.y + rel.x + _200d * 4 + 1; 
[libplacebo @ 0000023f7a8b5a40] [338] offset = ivec2(-2, 1);
[libplacebo @ 0000023f7a8b5a40] [339] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [340] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [341] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [342] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [343] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [344] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [345] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [346] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [347] }
[libplacebo @ 0000023f7a8b5a40] [348] idx = _200d * rel.y + rel.x + _200d * 4 + 2; 
[libplacebo @ 0000023f7a8b5a40] [349] offset = ivec2(-1, 1);
[libplacebo @ 0000023f7a8b5a40] [350] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [351] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [352] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [353] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [354] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [355] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [356] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [357] idx = _200d * rel.y + rel.x + _200d * 4 + 3; 
[libplacebo @ 0000023f7a8b5a40] [358] offset = ivec2(0, 1);
[libplacebo @ 0000023f7a8b5a40] [359] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [360] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [361] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [362] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [363] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [364] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [365] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [366] idx = _200d * rel.y + rel.x + _200d * 4 + 4; 
[libplacebo @ 0000023f7a8b5a40] [367] offset = ivec2(1, 1);
[libplacebo @ 0000023f7a8b5a40] [368] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [369] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [370] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [371] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [372] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [373] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [374] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [375] idx = _200d * rel.y + rel.x + _200d * 4 + 5; 
[libplacebo @ 0000023f7a8b5a40] [376] offset = ivec2(2, 1);
[libplacebo @ 0000023f7a8b5a40] [377] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [378] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [379] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [380] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [381] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [382] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [383] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [384] idx = _200d * rel.y + rel.x + _200d * 4 + 6; 
[libplacebo @ 0000023f7a8b5a40] [385] offset = ivec2(3, 1);
[libplacebo @ 0000023f7a8b5a40] [386] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [387] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [388] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [389] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [390] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [391] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [392] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [393] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [394] }
[libplacebo @ 0000023f7a8b5a40] [395] idx = _200d * rel.y + rel.x + _200d * 4 + 7; 
[libplacebo @ 0000023f7a8b5a40] [396] offset = ivec2(4, 1);
[libplacebo @ 0000023f7a8b5a40] [397] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [398] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [399] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [400] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [401] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [402] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [403] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [404] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [405] }
[libplacebo @ 0000023f7a8b5a40] [406] idx = _200d * rel.y + rel.x + _200d * 5 + 0; 
[libplacebo @ 0000023f7a8b5a40] [407] idx = _200d * rel.y + rel.x + _200d * 5 + 1; 
[libplacebo @ 0000023f7a8b5a40] [408] offset = ivec2(-2, 2);
[libplacebo @ 0000023f7a8b5a40] [409] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [410] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [411] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [412] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [413] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [414] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [415] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [416] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [417] }
[libplacebo @ 0000023f7a8b5a40] [418] idx = _200d * rel.y + rel.x + _200d * 5 + 2; 
[libplacebo @ 0000023f7a8b5a40] [419] offset = ivec2(-1, 2);
[libplacebo @ 0000023f7a8b5a40] [420] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [421] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [422] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [423] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [424] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [425] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [426] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [427] idx = _200d * rel.y + rel.x + _200d * 5 + 3; 
[libplacebo @ 0000023f7a8b5a40] [428] offset = ivec2(0, 2);
[libplacebo @ 0000023f7a8b5a40] [429] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [430] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [431] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [432] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [433] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [434] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [435] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [436] idx = _200d * rel.y + rel.x + _200d * 5 + 4; 
[libplacebo @ 0000023f7a8b5a40] [437] offset = ivec2(1, 2);
[libplacebo @ 0000023f7a8b5a40] [438] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [439] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [440] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [441] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [442] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [443] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [444] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [445] idx = _200d * rel.y + rel.x + _200d * 5 + 5; 
[libplacebo @ 0000023f7a8b5a40] [446] offset = ivec2(2, 2);
[libplacebo @ 0000023f7a8b5a40] [447] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [448] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [449] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [450] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [451] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [452] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [453] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [454] idx = _200d * rel.y + rel.x + _200d * 5 + 6; 
[libplacebo @ 0000023f7a8b5a40] [455] offset = ivec2(3, 2);
[libplacebo @ 0000023f7a8b5a40] [456] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [457] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [458] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [459] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [460] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [461] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [462] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [463] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [464] }
[libplacebo @ 0000023f7a8b5a40] [465] idx = _200d * rel.y + rel.x + _200d * 5 + 7; 
[libplacebo @ 0000023f7a8b5a40] [466] idx = _200d * rel.y + rel.x + _200d * 6 + 0; 
[libplacebo @ 0000023f7a8b5a40] [467] idx = _200d * rel.y + rel.x + _200d * 6 + 1; 
[libplacebo @ 0000023f7a8b5a40] [468] offset = ivec2(-2, 3);
[libplacebo @ 0000023f7a8b5a40] [469] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [470] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [471] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [472] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [473] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [474] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [475] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [476] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [477] }
[libplacebo @ 0000023f7a8b5a40] [478] idx = _200d * rel.y + rel.x + _200d * 6 + 2; 
[libplacebo @ 0000023f7a8b5a40] [479] offset = ivec2(-1, 3);
[libplacebo @ 0000023f7a8b5a40] [480] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [481] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [482] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [483] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [484] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [485] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [486] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [487] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [488] }
[libplacebo @ 0000023f7a8b5a40] [489] idx = _200d * rel.y + rel.x + _200d * 6 + 3; 
[libplacebo @ 0000023f7a8b5a40] [490] offset = ivec2(0, 3);
[libplacebo @ 0000023f7a8b5a40] [491] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [492] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [493] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [494] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [495] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [496] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [497] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [498] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [499] }
[libplacebo @ 0000023f7a8b5a40] [500] idx = _200d * rel.y + rel.x + _200d * 6 + 4; 
[libplacebo @ 0000023f7a8b5a40] [501] offset = ivec2(1, 3);
[libplacebo @ 0000023f7a8b5a40] [502] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [503] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [504] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [505] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [506] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [507] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [508] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [509] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [510] }
[libplacebo @ 0000023f7a8b5a40] [511] idx = _200d * rel.y + rel.x + _200d * 6 + 5; 
[libplacebo @ 0000023f7a8b5a40] [512] offset = ivec2(2, 3);
[libplacebo @ 0000023f7a8b5a40] [513] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [514] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [515] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [516] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [517] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [518] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [519] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [520] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [521] }
[libplacebo @ 0000023f7a8b5a40] [522] idx = _200d * rel.y + rel.x + _200d * 6 + 6; 
[libplacebo @ 0000023f7a8b5a40] [523] offset = ivec2(3, 3);
[libplacebo @ 0000023f7a8b5a40] [524] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [525] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [526] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [527] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [528] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [529] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [530] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [531] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [532] }
[libplacebo @ 0000023f7a8b5a40] [533] idx = _200d * rel.y + rel.x + _200d * 6 + 7; 
[libplacebo @ 0000023f7a8b5a40] [534] idx = _200d * rel.y + rel.x + _200d * 7 + 0; 
[libplacebo @ 0000023f7a8b5a40] [535] idx = _200d * rel.y + rel.x + _200d * 7 + 1; 
[libplacebo @ 0000023f7a8b5a40] [536] idx = _200d * rel.y + rel.x + _200d * 7 + 2; 
[libplacebo @ 0000023f7a8b5a40] [537] idx = _200d * rel.y + rel.x + _200d * 7 + 3; 
[libplacebo @ 0000023f7a8b5a40] [538] offset = ivec2(0, 4);
[libplacebo @ 0000023f7a8b5a40] [539] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [540] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [541] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [542] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [543] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [544] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [545] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [546] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [547] }
[libplacebo @ 0000023f7a8b5a40] [548] idx = _200d * rel.y + rel.x + _200d * 7 + 4; 
[libplacebo @ 0000023f7a8b5a40] [549] offset = ivec2(1, 4);
[libplacebo @ 0000023f7a8b5a40] [550] d = length(vec2(offset) - fcoord);
[libplacebo @ 0000023f7a8b5a40] [551] if (d < _200b) {
[libplacebo @ 0000023f7a8b5a40] [552] w = _2006(d * 1.0 / _200b);
[libplacebo @ 0000023f7a8b5a40] [553] wsum += w;
[libplacebo @ 0000023f7a8b5a40] [554] c[0] = _200c_0[idx];
[libplacebo @ 0000023f7a8b5a40] [555] c[1] = _200c_1[idx];
[libplacebo @ 0000023f7a8b5a40] [556] color[0] += w * c[0];
[libplacebo @ 0000023f7a8b5a40] [557] color[1] += w * c[1];
[libplacebo @ 0000023f7a8b5a40] [558] }
[libplacebo @ 0000023f7a8b5a40] [559] idx = _200d * rel.y + rel.x + _200d * 7 + 5; 
[libplacebo @ 0000023f7a8b5a40] [560] idx = _200d * rel.y + rel.x + _200d * 7 + 6; 
[libplacebo @ 0000023f7a8b5a40] [561] idx = _200d * rel.y + rel.x + _200d * 7 + 7; 
[libplacebo @ 0000023f7a8b5a40] [562] color = _2005 / wsum * color;
[libplacebo @ 0000023f7a8b5a40] [563] color.a = 1.0;
[libplacebo @ 0000023f7a8b5a40] [564] }
[libplacebo @ 0000023f7a8b5a40] [565] return color;
[libplacebo @ 0000023f7a8b5a40] [566] }
[libplacebo @ 0000023f7a8b5a40] [567] 
[libplacebo @ 0000023f7a8b5a40] [568] void _4001() {
[libplacebo @ 0000023f7a8b5a40] [569] vec4 color = vec4(_4003, vec2(_4002), 1.0);   
[libplacebo @ 0000023f7a8b5a40] [570] // pass_read_image                        
[libplacebo @ 0000023f7a8b5a40] [571] {                                         
[libplacebo @ 0000023f7a8b5a40] [572] vec4 tmp;                                 
[libplacebo @ 0000023f7a8b5a40] [573] tmp = _c001(); 
[libplacebo @ 0000023f7a8b5a40] [574] color[0] = tmp[0];
[libplacebo @ 0000023f7a8b5a40] [575] tmp = _2001(); 
[libplacebo @ 0000023f7a8b5a40] [576] color[1] = tmp[0];
[libplacebo @ 0000023f7a8b5a40] [577] color[2] = tmp[1];
[libplacebo @ 0000023f7a8b5a40] [578] }
[libplacebo @ 0000023f7a8b5a40] [579] // pl_shader_decode_color 
[libplacebo @ 0000023f7a8b5a40] [580] { 
[libplacebo @ 0000023f7a8b5a40] [581] color.rgb = _4004 * color.rgb + _4005; 
[libplacebo @ 0000023f7a8b5a40] [582] }
[libplacebo @ 0000023f7a8b5a40] [583] // pl_shader_encode_color 
[libplacebo @ 0000023f7a8b5a40] [584] { 
[libplacebo @ 0000023f7a8b5a40] [585] color.rgb = _4006 * color.rgb + _4007; 
[libplacebo @ 0000023f7a8b5a40] [586] }
[libplacebo @ 0000023f7a8b5a40] [587] ivec2 dir = ivec2(1, 1);
[libplacebo @ 0000023f7a8b5a40] [588] ivec2 pos = _4012 + dir * ivec2(gl_GlobalInvocationID).xy;
[libplacebo @ 0000023f7a8b5a40] [589] vec2 fpos = _4008 * vec2(gl_GlobalInvocationID);
[libplacebo @ 0000023f7a8b5a40] [590] if (fpos.x < 1.0 && fpos.y < 1.0) {
[libplacebo @ 0000023f7a8b5a40] [591] imageStore(_4011, pos, color);
[libplacebo @ 0000023f7a8b5a40] [592] }
[libplacebo @ 0000023f7a8b5a40] [593] 
[libplacebo @ 0000023f7a8b5a40] [594] }
[libplacebo @ 0000023f7a8b5a40] [595] 
[libplacebo @ 0000023f7a8b5a40] [596] void main() {
[libplacebo @ 0000023f7a8b5a40] [597] _4001();
[libplacebo @ 0000023f7a8b5a40] [598] }
[libplacebo @ 0000023f7a8b5a40] Specialization constant values:
[libplacebo @ 0000023f7a8b5a40]   constant_id=0: 0.500008
[libplacebo @ 0000023f7a8b5a40]   constant_id=1: 0.062501
[libplacebo @ 0000023f7a8b5a40]   constant_id=2: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=3: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=4: 0.001953
[libplacebo @ 0000023f7a8b5a40]   constant_id=5: 0.996094
[libplacebo @ 0000023f7a8b5a40]   constant_id=6: 3.099147
[libplacebo @ 0000023f7a8b5a40]   constant_id=7: 24
[libplacebo @ 0000023f7a8b5a40]   constant_id=8: 24
[libplacebo @ 0000023f7a8b5a40]   constant_id=9: 0.000000
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 56.297 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] Spent 0.025 ms compiling shader
[libplacebo @ 0000023f7a8b5a40] Spent 0.046 ms creating pipeline
[libplacebo @ 0000023f7a8b5a40] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 0000023f7a8b5a40] LUT invalidated, regenerating..
[libplacebo @ 0000023f7a8b5a40] Spent 20.030 ms generating shader LUT
[libplacebo @ 0000023f7a8b5a40] Allocating 247680 memory of type 0x7 (id 3) in heap 2: ../src/gpu/utils.c:533
[libplacebo @ 0000023f7a8b5a40] Spent 0.411 ms allocating slab
[libplacebo @ 0000023f7a8b5a40] Dithering to 10 bit depth
[libplacebo @ 0000023f7a8b5a40] vertex shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 11] layout(constant_id=1) const float _7 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 12] layout(constant_id=2) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=3) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(location=0) in vec2 _d;
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(location=0) out vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(location=1) in vec2 _e;
[libplacebo @ 0000023f7a8b5a40] [ 19] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 20] _3 = _d;
[libplacebo @ 0000023f7a8b5a40] [ 21] vec2 va_pos = _e; 
[libplacebo @ 0000023f7a8b5a40] [ 22] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 23] }
[libplacebo @ 0000023f7a8b5a40] fragment shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(constant_id=0) const float _4 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 11] layout(constant_id=1) const float _7 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 12] layout(constant_id=2) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=3) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(location=0) in vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(location=0) out vec4 out_color;
[libplacebo @ 0000023f7a8b5a40] [ 18] 
[libplacebo @ 0000023f7a8b5a40] [ 19] #define _5(pos) (texelFetch(_6, ivec2(pos), 0).x)
[libplacebo @ 0000023f7a8b5a40] [ 20] vec4 _1() {
[libplacebo @ 0000023f7a8b5a40] [ 21] // pl_shader_sample_direct                            
[libplacebo @ 0000023f7a8b5a40] [ 22] vec4 color = vec4(_4) * textureLod(_2, _3, 0.0);   
[libplacebo @ 0000023f7a8b5a40] [ 23] // pl_shader_dither 
[libplacebo @ 0000023f7a8b5a40] [ 24] {                    
[libplacebo @ 0000023f7a8b5a40] [ 25] float bias;          
[libplacebo @ 0000023f7a8b5a40] [ 26] vec2 pos = fract(gl_FragCoord.xy * 1.0/_7); 
[libplacebo @ 0000023f7a8b5a40] [ 27] bias = _5(ivec2(pos * _8));
[libplacebo @ 0000023f7a8b5a40] [ 28] const float scale = 1023.0; 
[libplacebo @ 0000023f7a8b5a40] [ 29] color = scale * color + vec4(bias);   
[libplacebo @ 0000023f7a8b5a40] [ 30] color = floor(color) * (1.0 / scale); 
[libplacebo @ 0000023f7a8b5a40] [ 31] } 
[libplacebo @ 0000023f7a8b5a40] [ 32] color *= vec4(1.0 / _9); 
[libplacebo @ 0000023f7a8b5a40] [ 33] vec4 _a = color;                 
[libplacebo @ 0000023f7a8b5a40] [ 34] color = vec4(0.0, 0.0, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 35] color[0] = _a[0]; 
[libplacebo @ 0000023f7a8b5a40] [ 36] return color;
[libplacebo @ 0000023f7a8b5a40] [ 37] }
[libplacebo @ 0000023f7a8b5a40] [ 38] 
[libplacebo @ 0000023f7a8b5a40] [ 39] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 40] out_color = _1();
[libplacebo @ 0000023f7a8b5a40] [ 41] }
[libplacebo @ 0000023f7a8b5a40] Specialization constant values:
[libplacebo @ 0000023f7a8b5a40]   constant_id=0: 1.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=1: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=2: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=3: 64.000000
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 1.886 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 2.344 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] Spent 0.009 ms compiling shader
[libplacebo @ 0000023f7a8b5a40] Spent 0.047 ms creating pipeline
[libplacebo @ 0000023f7a8b5a40] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 0000023f7a8b5a40] LUT invalidated, regenerating..
[libplacebo @ 0000023f7a8b5a40] Spent 0.001 ms generating shader LUT
[libplacebo @ 0000023f7a8b5a40] (Re)creating 3840x1080x0 texture with format rgba16hf: src/renderer.c:762
[libplacebo @ 0000023f7a8b5a40] vertex shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(location=0) in vec2 _12;
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(location=0) out vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 24] layout(location=1) in vec2 _13;
[libplacebo @ 0000023f7a8b5a40] [ 25] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 26] _3 = _12;
[libplacebo @ 0000023f7a8b5a40] [ 27] vec2 va_pos = _13; 
[libplacebo @ 0000023f7a8b5a40] [ 28] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 29] }
[libplacebo @ 0000023f7a8b5a40] fragment shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(location=0) in vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(location=0) out vec4 out_color;
[libplacebo @ 0000023f7a8b5a40] [ 24] 
[libplacebo @ 0000023f7a8b5a40] [ 25] #define _7(x) (_9 * (x) + _8) 
[libplacebo @ 0000023f7a8b5a40] [ 26] #define _a(x) (_c * (x) + _b) 
[libplacebo @ 0000023f7a8b5a40] [ 27] #define _5(pos) (textureLod(_6, vec2(\
[libplacebo @ 0000023f7a8b5a40] [ 28]     _7(vec2(pos).x)\
[libplacebo @ 0000023f7a8b5a40] [ 29]    ,_a(vec2(pos).y)\
[libplacebo @ 0000023f7a8b5a40] [ 30]   ), 0.0).xyzw)
[libplacebo @ 0000023f7a8b5a40] [ 31] vec4 _1() {
[libplacebo @ 0000023f7a8b5a40] [ 32] 
[libplacebo @ 0000023f7a8b5a40] [ 33] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 0000023f7a8b5a40] [ 34] {
[libplacebo @ 0000023f7a8b5a40] [ 35] vec2 pos = _3, pt = _4;
[libplacebo @ 0000023f7a8b5a40] [ 36] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 0000023f7a8b5a40] [ 37] vec2 dir = vec2(float(0), float(1));
[libplacebo @ 0000023f7a8b5a40] [ 38] pt *= dir;
[libplacebo @ 0000023f7a8b5a40] [ 39] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 0000023f7a8b5a40] [ 40] float fcoord = dot(fcoord2, dir);
[libplacebo @ 0000023f7a8b5a40] [ 41] vec2 base = pos - fcoord * pt - pt * vec2(float(1));
[libplacebo @ 0000023f7a8b5a40] [ 42] vec4 ws;
[libplacebo @ 0000023f7a8b5a40] [ 43] float off;
[libplacebo @ 0000023f7a8b5a40] [ 44] float c, ca = float(0.0);
[libplacebo @ 0000023f7a8b5a40] [ 45] #pragma unroll 4
[libplacebo @ 0000023f7a8b5a40] [ 46] for (uint n = 0u; n < _d; n += uint(2)) {
[libplacebo @ 0000023f7a8b5a40] [ 47] if (n % 4u == 0u)
[libplacebo @ 0000023f7a8b5a40] [ 48] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 0000023f7a8b5a40] [ 49] off = float(n);
[libplacebo @ 0000023f7a8b5a40] [ 50] off += ws[n % 4u + 1u];
[libplacebo @ 0000023f7a8b5a40] [ 51] c = textureLod(_2, base + pt * off, 0.0).g;
[libplacebo @ 0000023f7a8b5a40] [ 52] ca += ws[n % 4u] * c;
[libplacebo @ 0000023f7a8b5a40] [ 53] }
[libplacebo @ 0000023f7a8b5a40] [ 54] color.g = _f * ca;
[libplacebo @ 0000023f7a8b5a40] [ 55] }
[libplacebo @ 0000023f7a8b5a40] [ 56] return color;
[libplacebo @ 0000023f7a8b5a40] [ 57] }
[libplacebo @ 0000023f7a8b5a40] [ 58] 
[libplacebo @ 0000023f7a8b5a40] [ 59] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 60] out_color = _1();
[libplacebo @ 0000023f7a8b5a40] [ 61] }
[libplacebo @ 0000023f7a8b5a40] Specialization constant values:
[libplacebo @ 0000023f7a8b5a40]   constant_id=0: 0.500000
[libplacebo @ 0000023f7a8b5a40]   constant_id=1: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=2: 0.001953
[libplacebo @ 0000023f7a8b5a40]   constant_id=3: 0.996094
[libplacebo @ 0000023f7a8b5a40]   constant_id=4: 4
[libplacebo @ 0000023f7a8b5a40]   constant_id=5: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=6: 1.000000
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 1.767 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 4.103 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] Spent 0.008 ms compiling shader
[libplacebo @ 0000023f7a8b5a40] Spent 0.037 ms creating pipeline
[libplacebo @ 0000023f7a8b5a40] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 0000023f7a8b5a40] LUT invalidated, regenerating..
[libplacebo @ 0000023f7a8b5a40] Spent 0.001 ms generating shader LUT
[libplacebo @ 0000023f7a8b5a40] vertex shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(constant_id=7) const float _12 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(constant_id=8) const float _13 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(constant_id=9) const float _14 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 24] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 25] layout(binding=2) uniform  sampler2D _11;
[libplacebo @ 0000023f7a8b5a40] [ 26] layout(location=0) in vec2 _18;
[libplacebo @ 0000023f7a8b5a40] [ 27] layout(location=0) out vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 28] layout(location=1) in vec2 _19;
[libplacebo @ 0000023f7a8b5a40] [ 29] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 30] _3 = _18;
[libplacebo @ 0000023f7a8b5a40] [ 31] vec2 va_pos = _19; 
[libplacebo @ 0000023f7a8b5a40] [ 32] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 33] }
[libplacebo @ 0000023f7a8b5a40] fragment shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(constant_id=7) const float _12 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(constant_id=8) const float _13 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(constant_id=9) const float _14 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 24] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 25] layout(binding=2) uniform  sampler2D _11;
[libplacebo @ 0000023f7a8b5a40] [ 26] layout(location=0) in vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 27] layout(location=0) out vec4 out_color;
[libplacebo @ 0000023f7a8b5a40] [ 28] 
[libplacebo @ 0000023f7a8b5a40] [ 29] #define _7(x) (_9 * (x) + _8) 
[libplacebo @ 0000023f7a8b5a40] [ 30] #define _a(x) (_c * (x) + _b) 
[libplacebo @ 0000023f7a8b5a40] [ 31] #define _5(pos) (textureLod(_6, vec2(\
[libplacebo @ 0000023f7a8b5a40] [ 32]     _7(vec2(pos).x)\
[libplacebo @ 0000023f7a8b5a40] [ 33]    ,_a(vec2(pos).y)\
[libplacebo @ 0000023f7a8b5a40] [ 34]   ), 0.0).xyzw)
[libplacebo @ 0000023f7a8b5a40] [ 35] #define _10(pos) (texelFetch(_11, ivec2(pos), 0).x)
[libplacebo @ 0000023f7a8b5a40] [ 36] vec4 _1() {
[libplacebo @ 0000023f7a8b5a40] [ 37] 
[libplacebo @ 0000023f7a8b5a40] [ 38] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 0000023f7a8b5a40] [ 39] {
[libplacebo @ 0000023f7a8b5a40] [ 40] vec2 pos = _3, pt = _4;
[libplacebo @ 0000023f7a8b5a40] [ 41] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 0000023f7a8b5a40] [ 42] vec2 dir = vec2(float(1), float(0));
[libplacebo @ 0000023f7a8b5a40] [ 43] pt *= dir;
[libplacebo @ 0000023f7a8b5a40] [ 44] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 0000023f7a8b5a40] [ 45] float fcoord = dot(fcoord2, dir);
[libplacebo @ 0000023f7a8b5a40] [ 46] vec2 base = pos - fcoord * pt - pt * vec2(float(1));
[libplacebo @ 0000023f7a8b5a40] [ 47] vec4 ws;
[libplacebo @ 0000023f7a8b5a40] [ 48] float off;
[libplacebo @ 0000023f7a8b5a40] [ 49] float c, ca = float(0.0);
[libplacebo @ 0000023f7a8b5a40] [ 50] #pragma unroll 4
[libplacebo @ 0000023f7a8b5a40] [ 51] for (uint n = 0u; n < _d; n += uint(2)) {
[libplacebo @ 0000023f7a8b5a40] [ 52] if (n % 4u == 0u)
[libplacebo @ 0000023f7a8b5a40] [ 53] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 0000023f7a8b5a40] [ 54] off = float(n);
[libplacebo @ 0000023f7a8b5a40] [ 55] off += ws[n % 4u + 1u];
[libplacebo @ 0000023f7a8b5a40] [ 56] c = textureLod(_2, base + pt * off, 0.0).g;
[libplacebo @ 0000023f7a8b5a40] [ 57] ca += ws[n % 4u] * c;
[libplacebo @ 0000023f7a8b5a40] [ 58] }
[libplacebo @ 0000023f7a8b5a40] [ 59] color.g = _f * ca;
[libplacebo @ 0000023f7a8b5a40] [ 60] }
[libplacebo @ 0000023f7a8b5a40] [ 61] // pl_shader_dither 
[libplacebo @ 0000023f7a8b5a40] [ 62] {                    
[libplacebo @ 0000023f7a8b5a40] [ 63] float bias;          
[libplacebo @ 0000023f7a8b5a40] [ 64] vec2 pos = fract(gl_FragCoord.xy * 1.0/_12); 
[libplacebo @ 0000023f7a8b5a40] [ 65] bias = _10(ivec2(pos * _13));
[libplacebo @ 0000023f7a8b5a40] [ 66] const float scale = 1023.0; 
[libplacebo @ 0000023f7a8b5a40] [ 67] color = scale * color + vec4(bias);   
[libplacebo @ 0000023f7a8b5a40] [ 68] color = floor(color) * (1.0 / scale); 
[libplacebo @ 0000023f7a8b5a40] [ 69] } 
[libplacebo @ 0000023f7a8b5a40] [ 70] color *= vec4(1.0 / _14); 
[libplacebo @ 0000023f7a8b5a40] [ 71] vec4 _15 = color;                 
[libplacebo @ 0000023f7a8b5a40] [ 72] color = vec4(0.0, 0.0, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 73] color[0] = _15[1]; 
[libplacebo @ 0000023f7a8b5a40] [ 74] return color;
[libplacebo @ 0000023f7a8b5a40] [ 75] }
[libplacebo @ 0000023f7a8b5a40] [ 76] 
[libplacebo @ 0000023f7a8b5a40] [ 77] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 78] out_color = _1();
[libplacebo @ 0000023f7a8b5a40] [ 79] }
[libplacebo @ 0000023f7a8b5a40] Specialization constant values:
[libplacebo @ 0000023f7a8b5a40]   constant_id=0: 0.500000
[libplacebo @ 0000023f7a8b5a40]   constant_id=1: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=2: 0.001953
[libplacebo @ 0000023f7a8b5a40]   constant_id=3: 0.996094
[libplacebo @ 0000023f7a8b5a40]   constant_id=4: 4
[libplacebo @ 0000023f7a8b5a40]   constant_id=5: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=6: 1.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=7: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=8: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=9: 64.000000
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 1.796 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 4.943 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] Spent 0.010 ms compiling shader
[libplacebo @ 0000023f7a8b5a40] Spent 0.038 ms creating pipeline
[libplacebo @ 0000023f7a8b5a40] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 0000023f7a8b5a40] LUT invalidated, regenerating..
[libplacebo @ 0000023f7a8b5a40] Spent 0.001 ms generating shader LUT
[libplacebo @ 0000023f7a8b5a40] (Re)creating 3840x1080x0 texture with format rgba16hf: src/renderer.c:762
[libplacebo @ 0000023f7a8b5a40] vertex shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(location=0) in vec2 _12;
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(location=0) out vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 24] layout(location=1) in vec2 _13;
[libplacebo @ 0000023f7a8b5a40] [ 25] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 26] _3 = _12;
[libplacebo @ 0000023f7a8b5a40] [ 27] vec2 va_pos = _13; 
[libplacebo @ 0000023f7a8b5a40] [ 28] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 29] }
[libplacebo @ 0000023f7a8b5a40] fragment shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(location=0) in vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(location=0) out vec4 out_color;
[libplacebo @ 0000023f7a8b5a40] [ 24] 
[libplacebo @ 0000023f7a8b5a40] [ 25] #define _7(x) (_9 * (x) + _8) 
[libplacebo @ 0000023f7a8b5a40] [ 26] #define _a(x) (_c * (x) + _b) 
[libplacebo @ 0000023f7a8b5a40] [ 27] #define _5(pos) (textureLod(_6, vec2(\
[libplacebo @ 0000023f7a8b5a40] [ 28]     _7(vec2(pos).x)\
[libplacebo @ 0000023f7a8b5a40] [ 29]    ,_a(vec2(pos).y)\
[libplacebo @ 0000023f7a8b5a40] [ 30]   ), 0.0).xyzw)
[libplacebo @ 0000023f7a8b5a40] [ 31] vec4 _1() {
[libplacebo @ 0000023f7a8b5a40] [ 32] 
[libplacebo @ 0000023f7a8b5a40] [ 33] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 0000023f7a8b5a40] [ 34] {
[libplacebo @ 0000023f7a8b5a40] [ 35] vec2 pos = _3, pt = _4;
[libplacebo @ 0000023f7a8b5a40] [ 36] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 0000023f7a8b5a40] [ 37] vec2 dir = vec2(float(0), float(1));
[libplacebo @ 0000023f7a8b5a40] [ 38] pt *= dir;
[libplacebo @ 0000023f7a8b5a40] [ 39] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 0000023f7a8b5a40] [ 40] float fcoord = dot(fcoord2, dir);
[libplacebo @ 0000023f7a8b5a40] [ 41] vec2 base = pos - fcoord * pt - pt * vec2(float(1));
[libplacebo @ 0000023f7a8b5a40] [ 42] vec4 ws;
[libplacebo @ 0000023f7a8b5a40] [ 43] float off;
[libplacebo @ 0000023f7a8b5a40] [ 44] float c, ca = float(0.0);
[libplacebo @ 0000023f7a8b5a40] [ 45] #pragma unroll 4
[libplacebo @ 0000023f7a8b5a40] [ 46] for (uint n = 0u; n < _d; n += uint(2)) {
[libplacebo @ 0000023f7a8b5a40] [ 47] if (n % 4u == 0u)
[libplacebo @ 0000023f7a8b5a40] [ 48] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 0000023f7a8b5a40] [ 49] off = float(n);
[libplacebo @ 0000023f7a8b5a40] [ 50] off += ws[n % 4u + 1u];
[libplacebo @ 0000023f7a8b5a40] [ 51] c = textureLod(_2, base + pt * off, 0.0).b;
[libplacebo @ 0000023f7a8b5a40] [ 52] ca += ws[n % 4u] * c;
[libplacebo @ 0000023f7a8b5a40] [ 53] }
[libplacebo @ 0000023f7a8b5a40] [ 54] color.b = _f * ca;
[libplacebo @ 0000023f7a8b5a40] [ 55] }
[libplacebo @ 0000023f7a8b5a40] [ 56] return color;
[libplacebo @ 0000023f7a8b5a40] [ 57] }
[libplacebo @ 0000023f7a8b5a40] [ 58] 
[libplacebo @ 0000023f7a8b5a40] [ 59] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 60] out_color = _1();
[libplacebo @ 0000023f7a8b5a40] [ 61] }
[libplacebo @ 0000023f7a8b5a40] Specialization constant values:
[libplacebo @ 0000023f7a8b5a40]   constant_id=0: 0.500000
[libplacebo @ 0000023f7a8b5a40]   constant_id=1: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=2: 0.001953
[libplacebo @ 0000023f7a8b5a40]   constant_id=3: 0.996094
[libplacebo @ 0000023f7a8b5a40]   constant_id=4: 4
[libplacebo @ 0000023f7a8b5a40]   constant_id=5: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=6: 1.000000
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 1.740 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 4.030 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] Spent 0.008 ms compiling shader
[libplacebo @ 0000023f7a8b5a40] Spent 0.054 ms creating pipeline
[libplacebo @ 0000023f7a8b5a40] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
[libplacebo @ 0000023f7a8b5a40] LUT invalidated, regenerating..
[libplacebo @ 0000023f7a8b5a40] Spent 0.001 ms generating shader LUT
[libplacebo @ 0000023f7a8b5a40] vertex shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(constant_id=7) const float _12 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(constant_id=8) const float _13 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(constant_id=9) const float _14 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 24] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 25] layout(binding=2) uniform  sampler2D _11;
[libplacebo @ 0000023f7a8b5a40] [ 26] layout(location=0) in vec2 _18;
[libplacebo @ 0000023f7a8b5a40] [ 27] layout(location=0) out vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 28] layout(location=1) in vec2 _19;
[libplacebo @ 0000023f7a8b5a40] [ 29] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 30] _3 = _18;
[libplacebo @ 0000023f7a8b5a40] [ 31] vec2 va_pos = _19; 
[libplacebo @ 0000023f7a8b5a40] [ 32] gl_Position = vec4(va_pos, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 33] }
[libplacebo @ 0000023f7a8b5a40] fragment shader source:
[libplacebo @ 0000023f7a8b5a40] [  1] #version 450
[libplacebo @ 0000023f7a8b5a40] [  2] #extension GL_KHR_shader_subgroup_basic : enable 
[libplacebo @ 0000023f7a8b5a40] [  3] #extension GL_KHR_shader_subgroup_vote : enable 
[libplacebo @ 0000023f7a8b5a40] [  4] #extension GL_KHR_shader_subgroup_arithmetic : enable 
[libplacebo @ 0000023f7a8b5a40] [  5] #extension GL_KHR_shader_subgroup_ballot : enable 
[libplacebo @ 0000023f7a8b5a40] [  6] #extension GL_KHR_shader_subgroup_shuffle : enable 
[libplacebo @ 0000023f7a8b5a40] [  7] #extension GL_KHR_shader_subgroup_clustered : enable 
[libplacebo @ 0000023f7a8b5a40] [  8] #extension GL_KHR_shader_subgroup_quad : enable 
[libplacebo @ 0000023f7a8b5a40] [  9] #extension GL_ARB_texture_gather : enable
[libplacebo @ 0000023f7a8b5a40] [ 10] layout(std430, push_constant) uniform PushC {
[libplacebo @ 0000023f7a8b5a40] [ 11]     layout(offset=0) vec2 _4;
[libplacebo @ 0000023f7a8b5a40] [ 12] };
[libplacebo @ 0000023f7a8b5a40] [ 13] layout(constant_id=0) const float _8 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 14] layout(constant_id=1) const float _9 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 15] layout(constant_id=2) const float _b = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 16] layout(constant_id=3) const float _c = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 17] layout(constant_id=4) const uint _d = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 18] layout(constant_id=5) const float _e = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 19] layout(constant_id=6) const float _f = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 20] layout(constant_id=7) const float _12 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 21] layout(constant_id=8) const float _13 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 22] layout(constant_id=9) const float _14 = 1; 
[libplacebo @ 0000023f7a8b5a40] [ 23] layout(binding=0) uniform  sampler2D _2;
[libplacebo @ 0000023f7a8b5a40] [ 24] layout(binding=1) uniform  sampler2D _6;
[libplacebo @ 0000023f7a8b5a40] [ 25] layout(binding=2) uniform  sampler2D _11;
[libplacebo @ 0000023f7a8b5a40] [ 26] layout(location=0) in vec2 _3;
[libplacebo @ 0000023f7a8b5a40] [ 27] layout(location=0) out vec4 out_color;
[libplacebo @ 0000023f7a8b5a40] [ 28] 
[libplacebo @ 0000023f7a8b5a40] [ 29] #define _7(x) (_9 * (x) + _8) 
[libplacebo @ 0000023f7a8b5a40] [ 30] #define _a(x) (_c * (x) + _b) 
[libplacebo @ 0000023f7a8b5a40] [ 31] #define _5(pos) (textureLod(_6, vec2(\
[libplacebo @ 0000023f7a8b5a40] [ 32]     _7(vec2(pos).x)\
[libplacebo @ 0000023f7a8b5a40] [ 33]    ,_a(vec2(pos).y)\
[libplacebo @ 0000023f7a8b5a40] [ 34]   ), 0.0).xyzw)
[libplacebo @ 0000023f7a8b5a40] [ 35] #define _10(pos) (texelFetch(_11, ivec2(pos), 0).x)
[libplacebo @ 0000023f7a8b5a40] [ 36] vec4 _1() {
[libplacebo @ 0000023f7a8b5a40] [ 37] 
[libplacebo @ 0000023f7a8b5a40] [ 38] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[libplacebo @ 0000023f7a8b5a40] [ 39] {
[libplacebo @ 0000023f7a8b5a40] [ 40] vec2 pos = _3, pt = _4;
[libplacebo @ 0000023f7a8b5a40] [ 41] vec2 size = vec2(textureSize(_2, 0));
[libplacebo @ 0000023f7a8b5a40] [ 42] vec2 dir = vec2(float(1), float(0));
[libplacebo @ 0000023f7a8b5a40] [ 43] pt *= dir;
[libplacebo @ 0000023f7a8b5a40] [ 44] vec2 fcoord2 = fract(pos * size - vec2(0.5));
[libplacebo @ 0000023f7a8b5a40] [ 45] float fcoord = dot(fcoord2, dir);
[libplacebo @ 0000023f7a8b5a40] [ 46] vec2 base = pos - fcoord * pt - pt * vec2(float(1));
[libplacebo @ 0000023f7a8b5a40] [ 47] vec4 ws;
[libplacebo @ 0000023f7a8b5a40] [ 48] float off;
[libplacebo @ 0000023f7a8b5a40] [ 49] float c, ca = float(0.0);
[libplacebo @ 0000023f7a8b5a40] [ 50] #pragma unroll 4
[libplacebo @ 0000023f7a8b5a40] [ 51] for (uint n = 0u; n < _d; n += uint(2)) {
[libplacebo @ 0000023f7a8b5a40] [ 52] if (n % 4u == 0u)
[libplacebo @ 0000023f7a8b5a40] [ 53] ws = _5(vec2(float(n / 4u) / float(1), fcoord));
[libplacebo @ 0000023f7a8b5a40] [ 54] off = float(n);
[libplacebo @ 0000023f7a8b5a40] [ 55] off += ws[n % 4u + 1u];
[libplacebo @ 0000023f7a8b5a40] [ 56] c = textureLod(_2, base + pt * off, 0.0).b;
[libplacebo @ 0000023f7a8b5a40] [ 57] ca += ws[n % 4u] * c;
[libplacebo @ 0000023f7a8b5a40] [ 58] }
[libplacebo @ 0000023f7a8b5a40] [ 59] color.b = _f * ca;
[libplacebo @ 0000023f7a8b5a40] [ 60] }
[libplacebo @ 0000023f7a8b5a40] [ 61] // pl_shader_dither 
[libplacebo @ 0000023f7a8b5a40] [ 62] {                    
[libplacebo @ 0000023f7a8b5a40] [ 63] float bias;          
[libplacebo @ 0000023f7a8b5a40] [ 64] vec2 pos = fract(gl_FragCoord.xy * 1.0/_12); 
[libplacebo @ 0000023f7a8b5a40] [ 65] bias = _10(ivec2(pos * _13));
[libplacebo @ 0000023f7a8b5a40] [ 66] const float scale = 1023.0; 
[libplacebo @ 0000023f7a8b5a40] [ 67] color = scale * color + vec4(bias);   
[libplacebo @ 0000023f7a8b5a40] [ 68] color = floor(color) * (1.0 / scale); 
[libplacebo @ 0000023f7a8b5a40] [ 69] } 
[libplacebo @ 0000023f7a8b5a40] [ 70] color *= vec4(1.0 / _14); 
[libplacebo @ 0000023f7a8b5a40] [ 71] vec4 _15 = color;                 
[libplacebo @ 0000023f7a8b5a40] [ 72] color = vec4(0.0, 0.0, 0.0, 1.0); 
[libplacebo @ 0000023f7a8b5a40] [ 73] color[0] = _15[2]; 
[libplacebo @ 0000023f7a8b5a40] [ 74] return color;
[libplacebo @ 0000023f7a8b5a40] [ 75] }
[libplacebo @ 0000023f7a8b5a40] [ 76] 
[libplacebo @ 0000023f7a8b5a40] [ 77] void main() {
[libplacebo @ 0000023f7a8b5a40] [ 78] out_color = _1();
[libplacebo @ 0000023f7a8b5a40] [ 79] }
[libplacebo @ 0000023f7a8b5a40] Specialization constant values:
[libplacebo @ 0000023f7a8b5a40]   constant_id=0: 0.500000
[libplacebo @ 0000023f7a8b5a40]   constant_id=1: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=2: 0.001953
[libplacebo @ 0000023f7a8b5a40]   constant_id=3: 0.996094
[libplacebo @ 0000023f7a8b5a40]   constant_id=4: 4
[libplacebo @ 0000023f7a8b5a40]   constant_id=5: 0.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=6: 1.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=7: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=8: 64.000000
[libplacebo @ 0000023f7a8b5a40]   constant_id=9: 64.000000
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 1.771 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] shaderc compile status 'success' (0 errors, 0 warnings)
[libplacebo @ 0000023f7a8b5a40] Spent 4.923 ms translating SPIR-V
[libplacebo @ 0000023f7a8b5a40] Spent 0.009 ms compiling shader
[libplacebo @ 0000023f7a8b5a40] Spent 0.040 ms creating pipeline
[libplacebo @ 0000023f7a8b5a40] Pass statistics: size 0, SPIR-V: vert 0 frag 0 comp 0
Output #0, rawvideo, to 'Out-PLC.yuv':
  Metadata:
    encoder         : Lavf60.21.101
  Stream #0:0, 0, 1001/24000: Video: rawvideo, 1 reference frame (Y3[11][10] / 0xA0B3359), yuv420p10le(progressive), 3840x2160, 0/1, q=2-31, 2983000 kb/s, 23.98 fps, 23.98 tbn
      Metadata:
        encoder         : Lavc60.40.100 rawvideo
[out#0/rawvideo @ 0000023f78ef7480] Starting thread...
[out_0_0 @ 0000023f7a860b80] EOF on sink link out_0_0:default.
[vf#0:0 @ 0000023f7a85f440] Filtergraph returned EOF, finishing
[vf#0:0 @ 0000023f7a85f440] All consumers returned EOF
[vost#0:0/rawvideo @ 0000023f7a870a00] Encoder thread received EOF
[libplacebo @ 0000023f7a8b5a40] Waiting for remaining commands...
[vost#0:0/rawvideo @ 0000023f7a870a00] Terminating thread with return code 0 (success)
[libplacebo @ 0000023f7a8b5a40] Memory heaps supported by device:
[libplacebo @ 0000023f7a8b5a40]     0: flags 0x1 size 5800M
[libplacebo @ 0000023f7a8b5a40]     1: flags 0x0 size   31G
[libplacebo @ 0000023f7a8b5a40]     2: flags 0x1 size  256M
[libplacebo @ 0000023f7a8b5a40] Memory types supported by device:
[libplacebo @ 0000023f7a8b5a40]     0: flags 0x1 heap 0
[libplacebo @ 0000023f7a8b5a40]     1: flags 0x6 heap 1
[libplacebo @ 0000023f7a8b5a40]     2: flags 0xe heap 1
[libplacebo @ 0000023f7a8b5a40]     3: flags 0x7 heap 2
[libplacebo @ 0000023f7a8b5a40] Memory pool 0:
[libplacebo @ 0000023f7a8b5a40]     Compatible types: 0xf
[libplacebo @ 0000023f7a8b5a40]     Optimal flags: 0x1
[libplacebo @ 0000023f7a8b5a40]     Slab  0:        f x   16M:     0 used     0 res   64M alloc from heap 0, efficiency 100.00%  [src/renderer.c:1652]
[libplacebo @ 0000023f7a8b5a40]     Slab  1:        f x 4084K:     0 used     0 res   15M alloc from heap 0, efficiency 100.00%  [../src/utils/upload.c:356]
[libplacebo @ 0000023f7a8b5a40]     Slab  2:       ff x   32K:     0 used     0 res  256K alloc from heap 0, efficiency 100.00%  [src/shaders/sampling.c:1007]
[libplacebo @ 0000023f7a8b5a40]     Slab  3:        f x   63M:     0 used     0 res  255M alloc from heap 0, efficiency 100.00%  [src/renderer.c:762]
[libplacebo @ 0000023f7a8b5a40]     Pool summary:     0 used     0 res  335M alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 0000023f7a8b5a40] Memory pool 1:
[libplacebo @ 0000023f7a8b5a40]     Compatible types: 0xffffffff
[libplacebo @ 0000023f7a8b5a40]     Required flags: 0x1
[libplacebo @ 0000023f7a8b5a40]     Optimal flags: 0x2
[libplacebo @ 0000023f7a8b5a40]     Buffer flags: 0xc3
[libplacebo @ 0000023f7a8b5a40]     Slab  0: 3fffffffffffffff x  4224:     0 used     0 res  255K alloc from heap 2, efficiency 100.00%  [../src/gpu/utils.c:1160]
[libplacebo @ 0000023f7a8b5a40]     Pool summary:     0 used     0 res  255K alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 0000023f7a8b5a40] Memory pool 2:
[libplacebo @ 0000023f7a8b5a40]     Compatible types: 0xffffffff
[libplacebo @ 0000023f7a8b5a40]     Optimal flags: 0x3
[libplacebo @ 0000023f7a8b5a40]     Buffer flags: 0x3
[libplacebo @ 0000023f7a8b5a40]     Slab  0: 3fffffffffffffff x  4224:     0 used     0 res  255K alloc from heap 2, efficiency 100.00%  [../src/gpu/utils.c:533]
[libplacebo @ 0000023f7a8b5a40]     Slab  1:     7fff x   16K:     0 used     0 res  241K alloc from heap 2, efficiency 100.00%  [../src/gpu/utils.c:533]
[libplacebo @ 0000023f7a8b5a40]     Pool summary:     0 used     0 res  497K alloc, efficiency 100.00%, utilization 0.00%
[libplacebo @ 0000023f7a8b5a40] Memory summary:     0 used     0 res  336M alloc, efficiency 100.00%, utilization 0.00%, max page:  362M
[libplacebo @ 0000023f7a8b5a40] Freeing slab of size   64M
[libplacebo @ 0000023f7a8b5a40] Freeing slab of size   15M
[libplacebo @ 0000023f7a8b5a40] Freeing slab of size  256K
[libplacebo @ 0000023f7a8b5a40] Freeing slab of size  255M
[libplacebo @ 0000023f7a8b5a40] Freeing slab of size  255K
    Last message repeated 1 times
[libplacebo @ 0000023f7a8b5a40] Freeing slab of size  241K
[vf#0:0 @ 0000023f7a85f440] Terminating thread with return code 0 (success)
[out#0/rawvideo @ 0000023f78ef7480] All streams finished
[out#0/rawvideo @ 0000023f78ef7480] Terminating thread with return code 0 (success)
[AVIOContext @ 0000023f7a862800] Statistics: 24883200 bytes written, 0 seeks, 95 writeouts
[out#0/rawvideo @ 0000023f78ef7480] Output file #0 (Out-PLC.yuv):
[out#0/rawvideo @ 0000023f78ef7480]   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (24883200 bytes); 
[out#0/rawvideo @ 0000023f78ef7480]   Total: 1 packets (24883200 bytes) muxed
[out#0/rawvideo @ 0000023f78ef7480] video:24300KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.000000%
frame=    1 fps=0.0 q=-0.0 Lsize=   24300KiB time=00:00:00.04 bitrate=4772839.7kbits/s speed=0.161x    
[in#0/rawvideo @ 0000023f78efd480] Input file #0 (Source.yuv):
[in#0/rawvideo @ 0000023f78efd480]   Input stream #0:0 (video): 1 packets read (24883200 bytes); 1 frames decoded; 0 decode errors; 
[in#0/rawvideo @ 0000023f78efd480]   Total: 1 packets (24883200 bytes) demuxed
[AVIOContext @ 0000023f7a866f40] Statistics: 24883200 bytes read, 0 seeks

@mightyhuhn
Copy link

mightyhuhn commented Mar 4, 2024

i found something that will not explain a colroshift but is oddly different.

the ire 10 03-10% Gray.mp4 is a mix of 24 and 25 on madVR or with color dithering a 25 24 25, 24 25 24, and very rare others
on mpv it is 90-95% 24 and a rare 25.
ire should be 255/10 so it should be a mix of 25 and 26 not?
or 219/10+16=37.9.

so time for video-output-levels=limited madVR limited
madVR ~90% 38 10% 37 still to low if the file is really ire 10 and my math is worth anything.
mpv 37 no dither noise nothing.

so either the file is bad and has a static 37 and madVR is magickly making it 37.1 or there is something going on here.

only screengrabs have been used not screenshot functions. no scaling only chroma no filter just nothing.

edit: more accurate measurement using only the 250x250 cantered pixels and infranview:

2.19x10+16 = 37.9
2.55x10 = 25.5
madVR
madVR limited range the image is 37 with some rare 38 in there so in infranview 37.11. 100/219x21.11 is roughly IRE 9.639
madVR full range the image is a 50/50 24 and 25 so in infranview 24.52. 100/255x24.52 is 9.615
so madVR has an error of 0.034 or 0.249% (((100/9.615)x9.639-100)

mpv:
mpv limited range is 100 37 even in infranview. 100/219x21 = 9.589
mpv full range is 90/10 24 and 25 so in infranview 24.10. ire 9.451
that's an error of 0.138 or 1.460% (((100/9.451)x9.589-100)

my best guess is it doesn't dither with limited range output creating this massive error and the file is Y 37.

@Chipcraft
Copy link
Author

Passing either RGBA or BGRA pixel formats through libplacebo's "format" results in a bit-exact output however, that is not the case with either YUV420P or YUV420P10 (and potentially others).

ffmpeg -init_hw_device vulkan -i PLC_Test\Input\RGBA.png -vf libplacebo=format=rgba PLC_Test\Output\RGBA.png

ffmpeg -init_hw_device vulkan -i PLC_Test\Input\BGRA.bmp -vf libplacebo=format=bgra PLC_Test\Output\BGRA.bmp

Meanwhile, for YUV420P or YUV420P10 inputs, the "-vf libplacebo=format=yuv420p" or "-vf libplacebo=format=yuv420p10" introduces the green tint in the output.

Also, introduced a third filter for testing purposes: VPP_QSV.

The output from VPP_QSV (Crop) results in a bit-exact output with LAV.

LAV (Crop):

ffmpeg -c:v libdav1d -i Georgia_1F.obu -frames:v 1 -update 1 -bsf:v hevc_metadata=chroma_sample_loc_type=2 -vf crop=7680:4316:0:2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -pix_fmt p010le -flags +cgop -g 120 LAV.h265

libplacebo (Crop):

ffmpeg -init_hw_device vulkan -c:v libdav1d -i Georgia_1F.obu -frames:v 1 -update 1 -bsf:v hevc_metadata=chroma_sample_loc_type=2 -vf libplacebo=crop_w=7680:crop_h=4316:crop_x=0:crop_y=2:w=7680:h=4316 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -pix_fmt p010le -flags +cgop -g 120 PLC.h265

VPP_QSV (Crop):

ffmpeg -hwaccel qsv -hwaccel_output_format qsv -c:v libdav1d -i Georgia_1F.obu -bsf:v hevc_metadata=chroma_sample_loc_type=2 -frames:v 1 -update 1 -vf vpp_qsv=cw=7680:ch=4316:cx=0:cy=2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -pix_fmt p010le -flags +cgop -g 120 VPP.h265

@haasn
Copy link
Owner

haasn commented Mar 4, 2024

Would it be correct to assume that using "libplacebo=format=yuv420p10le" on an input, that is already in yuv420p10le format would result in either a bit-exact output, or at the very least something with a difference below the limit of the human perception?

No, libplacebo uses a fully RGB internal pipeline, so both input/output to yuv420p will require conversion (upscaling, downscaling, YCbCr<->RGB)..

@mightyhuhn
Copy link

an error in chroma scaling could create such an error couldn't it?

@haasn
Copy link
Owner

haasn commented Mar 4, 2024

an error in chroma scaling could create such an error couldn't it?

Indeed. Maybe something you can try is comparing:

  • yuv420p input, rgba output
  • yuv444p input, rgba output
  • rgba input, yuv420p output
  • rgba input, yuv444p output

To see which of these combinations are affected

@Chipcraft
Copy link
Author

Chipcraft commented Mar 4, 2024

an error in chroma scaling could create such an error couldn't it?

Indeed. Maybe something you can try is comparing:

  • yuv420p input, rgba output
  • yuv444p input, rgba output
  • rgba input, yuv420p output
  • rgba input, yuv444p output

To see which of these combinations are affected

  • RGBA > RGBA = Unaffected.
  • RGBA > YUV420P = Affected.
  • RGBA > YUV444P = Affected.
  • YUV420P > RGBA = Affected.
  • YUV444P > RGBA = Affected.

@mightyhuhn
Copy link

that leaves rgb conversation but that looked good on paper.

does libplacebo do RGB full/limited directly or always one and then level correct them? meaning it's so unlikely but the level conversation? it's maybe done twice in this yuv420p -> yuv420p workflow or not at all.

@Chipcraft
Copy link
Author

Chipcraft commented Mar 9, 2024

@haasn

The issue appears to be related to the height of the input frame.

The RGB to YUV output is in line with LAV as long as the frame height is < 577 pixels.

RGB 55AAFFh to YUV420P

Input height 576 pixels:

LAV
Y = 94h
U = B2h
V = 55h

libplacebo

Y = 94/95h
U = B1/B2h
V = 54/55h

Input height >= 577 pixels:

LAV
Y = 94h
U = B2h
V = 55h

libplacebo
Y = 97/98h
U = AD/AEh
V = 57/58h

EDIT: I suppose this is not the issue here.
But a bit weird the output differing from the other two filters (LAV & e.g., VPP_QSV).

@mightyhuhn
Copy link

if no meta data is provided it may guess bt 601 instead of bt 709

@Chipcraft
Copy link
Author

if no meta data is provided it may guess bt 601 instead of bt 709

Output from the RGB-to-YUV conversion is identical regardless of the flagged colorspace, primaries, transfer and range in FFMpeg. It only changes depending on the resolution (i.e., <= 576 height and >= 577).

ffmpeg -init_hw_device vulkan -i Input\577.png -c:v rawvideo -vf libplacebo=format=yuv420p10le -strict -1 577_None-PLC.yuv

ffmpeg -init_hw_device vulkan -i Input\577.png -colorspace bt2020nc -color_primaries bt2020 -color_trc smpte2084 -color_range limited -c:v rawvideo -vf libplacebo=format=yuv420p10le -strict -1 577_2020-PLC.yuv

They both produce an identical output.

@haasn
Copy link
Owner

haasn commented Mar 11, 2024

On latest FFmpeg master, YUV space and range are auto-negotiated, but color primaries and TRC are not yet. I'm working on that (tm).

So your command does nothing, because vf_libplacebo does not know about what tags you're setting "downstream".

@mightyhuhn
Copy link

but what does libplacebo guess differently between pal resolution and bigger than pal resolution? so we may get closer to the reason of this problem?

@Chipcraft
Copy link
Author

Chipcraft commented Mar 11, 2024

@haasn

Found the issue.
It is something in the YUV420P10LE <> P010LE conversion, which is causing the observed shift in the colors. In case of LAV, the packing-unpacking process is lossless, whereas with libplacebo it is not. The issue seems to be amplified further, when a libplacebo P010LE encoded source is unpacked by LAV (see PLC_Decompress.yuv). Unpacking P010LE to YUV420P10LE "within" libplacebo isn't lossless either however, the produced difference appears to be smaller (see PLC_Decompress-2.yuv).

LAV

ffmpeg -init_hw_device vulkan -i Georgia_1F.obu -c:v rawvideo -pix_fmt yuv420p10le -strict -1 LAV_Reference.yuv

ffmpeg -init_hw_device vulkan -i Georgia_1F.obu -c:v rawvideo -pix_fmt p010le -strict -1 LAV_Packed.yuv

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt p010le -i LAV_Packed.yuv -c:v rawvideo -pix_fmt yuv420p10le -strict -1 LAV_Decompress.yuv

"LAV_Reference.yuv" and "LAV_Decompress.yuv" are a bit-exact match.

libplacebo

ffmpeg -init_hw_device vulkan -i Georgia_1F.obu -c:v rawvideo -vf libplacebo=format=yuv420p10le -strict -1 PLC_Reference.yuv

ffmpeg -init_hw_device vulkan -i Georgia_1F.obu -c:v rawvideo -vf libplacebo=format=p010le -strict -1 PLC_Packed.yuv

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt p010le -i PLC_Packed.yuv -c:v rawvideo -pix_fmt yuv420p10le -strict -1 PLC_Decompress.yuv

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt p010le -i PLC_Packed.yuv -c:v rawvideo -vf libplacebo=format=yuv420p10le -strict -1 PLC_Decompress-2.yuv

Not only neither the "PLC_Decompress.yuv" or the "PLC_Decompress-2.yuv" are a bit-exact match with the "PLC_Reference.yuv", but also the "PLC_Decompress.yuv" and "PLC_Decompress-2.yuv" differ between each other.

The encoded output between the "PLC_Packed.yuv" and "PLC_Decompress.yuv" are a bit-exact match. Meanwhile, the output from "PLC_Decompress-2.yuv" source still illustrates the issue, however the difference is smaller than with "PLC_Packed.yuv" / "PLC_Decompress.yuv".

Encode parameters

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt yuv420p10le -colorspace bt2020nc -color_primaries bt2020 -color_trc smpte2084 -color_range limited -i LAV_Reference.yuv -bsf:v hevc_metadata=chroma_sample_loc_type=2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le LAV_Reference.h265

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt p010le -colorspace bt2020nc -color_primaries bt2020 -color_trc smpte2084 -color_range limited -i LAV_Packed.yuv -bsf:v hevc_metadata=chroma_sample_loc_type=2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le LAV_Packed.h265

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt yuv420p10le -colorspace bt2020nc -color_primaries bt2020 -color_trc smpte2084 -color_range limited -i PLC_Reference.yuv -bsf:v hevc_metadata=chroma_sample_loc_type=2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le PLC_Reference.h265

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt p010le -colorspace bt2020nc -color_primaries bt2020 -color_trc smpte2084 -color_range limited -i PLC_Packed.yuv -bsf:v hevc_metadata=chroma_sample_loc_type=2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le PLC_Packed.h265

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt yuv420p10le -colorspace bt2020nc -color_primaries bt2020 -color_trc smpte2084 -color_range limited -i PLC_Decompress.yuv -bsf:v hevc_metadata=chroma_sample_loc_type=2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le PLC_Decompress.h265

ffmpeg -init_hw_device vulkan -s 7680x4320 -pix_fmt yuv420p10le -colorspace bt2020nc -color_primaries bt2020 -color_trc smpte2084 -color_range limited -i PLC_Decompress-2.yuv -bsf:v hevc_metadata=chroma_sample_loc_type=2 -c:v hevc_qsv -preset veryslow -scenario archive -profile:v main10 -level:v 61 -tier high -global_quality 14 -flags +cgop -g 120 -pix_fmt p010le PLC_Decompress-2.h265

Outputs

Source ($\color[RGB]{0,100,0} OK$ ,"Georgia_1F.obu"): https://nle-chipcraft.com/Git/PlaceboShift/Source.png

LAV ($\color[RGB]{0,100,0} OK$ , "Reference" / "Packed" / "Decompress"): https://nle-chipcraft.com/Git/PlaceboShift/LAV_Any.png

libplacebo ($\color[RGB]{0,100,0} OK$ , "Reference"): https://nle-chipcraft.com/Git/PlaceboShift/PLC_Reference.png

libplacebo ($\color[RGB]{255,0,0} FAIL$ , "Packed" / "Decompress"): https://nle-chipcraft.com/Git/PlaceboShift/PLC_Packed.png

libplacebo ($\color[RGB]{255,140,0} FAIL$, "Decompress-2"): https://nle-chipcraft.com/Git/PlaceboShift/PLC_Decompress-2.png

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants