mpv 0.27.0-509-g3723e611fc-dirty (C) 2000-2017 mpv/MPlayer/mplayer2 projects
built on Sat Dec 9 12:06:44 UTC 2017
ffmpeg library versions:
libavutil 56.5.100
libavcodec 58.6.103
libavformat 58.3.100
libswscale 5.0.101
libavfilter 7.7.100
libswresample 3.0.101
ffmpeg version: git-2017-12-08-713f9c5b5
Windows 7 SP1, Nvidia GTX970 with latest driver. HDMI (not sure which version) connecting to a 10-bit capable projector.
I have read some issues about 10 bit output. If I understand correctly, the key points in those posts are:
xorg.conf)My questions are:
fullscreen ( by double clicking the mpv window) combined with ontop make mpv full screen exclusive on windows? Or just borderless windowed? Makes the player window stay on top of other windows.
On Windows, if combined with fullscreen mode, this causes mpv to be treated as exclusive fullscreen window that bypasses the Desktop Window Manager.
If it is FSE, then
gpu-api and gpu-context provide 10 bit output when it is in FSE mode?gpu-api=vulkan, others set to auto, and the log shows:[ 0.025][v][vo/gpu/vulkan] Initializing GPU context 'winvk'
[ 0.025][v][vo/gpu/vulkan] Creating instance with extensions:
[ 0.025][v][vo/gpu/vulkan] VK_KHR_surface
[ 0.025][v][vo/gpu/vulkan] VK_KHR_win32_surface
[ 0.120][v][vo/gpu/vulkan] Probing for vulkan devices:
[ 0.120][v][vo/gpu/vulkan] GPU 0: GeForce GTX 970 (discrete)
[ 0.120][v][vo/gpu/vulkan] Chose device:
[ 0.120][v][vo/gpu/vulkan] Device Name: GeForce GTX 970
[ 0.120][v][vo/gpu/vulkan] Device ID: 10de:13c2
[ 0.120][v][vo/gpu/vulkan] Driver version: 1628356608
[ 0.120][v][vo/gpu/vulkan] API version: 1.0.56
[ 0.120][v][vo/gpu/vulkan] Initializing SPIR-V compiler 'shaderc'
[ 0.120][v][vo/gpu/vulkan] Queue families supported by device:
[ 0.120][v][vo/gpu/vulkan] QF 0: flags 0xf num 16
[ 0.120][v][vo/gpu/vulkan] QF 1: flags 0x4 num 1
[ 0.120][v][vo/gpu/vulkan] Using graphics queue (QF 0)
[ 0.120][v][vo/gpu/vulkan] Using async transfer (QF 1)
[ 0.120][v][vo/gpu/vulkan] Creating vulkan device with extensions:
[ 0.120][v][vo/gpu/vulkan] VK_KHR_swapchain
[ 0.152][v][vo/gpu/vulkan] Allocating 1048576 memory of type 0x1 (id 7) in heap 0.
[ 0.154][v][vo/gpu/vulkan] Allocating 1048576 memory of type 0x1 (id 7) in heap 0.
[ 0.155][v][vo/gpu] Testing FBO format rgba32f
[ 0.155][v][vo/gpu] Resizing texture: 16x16
[ 0.155][v][vo/gpu] Using FBO format rgba32f.
I configured the correct output bit depth in Nvidia control panel and turned dither off there.
I can confirm that madVR once enters the FSE mode, it is outputing native 10 bit (deband off, dither off, still no banding compared to 8 bit).
In mpv.conf, I set ontop, deband=no and dither-depth=no to do the test. However, 10 bit test patterns still show banding no matter the mpv window is in full screen or not.
This is telling me that my system can do 10 bit output but my current mpv configuration is preventing me from doing so. Is there any ways to enable 10 bit? Do I need to upgrade to windows 10?
For starters, you could post the full log
@haasn
mpv --no-config --profile=gpu-hq --gpu-api=vulkan --gpu-context=auto --spirv-compiler=auto --deband=no --dither-depth=no --ontop --screen=1 --fullscreen --fs-screen=1
The test file is
Stacey Spears created a 2160p HEVC Rotating 8bit and 10bit Quantization Artifact test pattern
from avsforum.
First of all, disabling dithering for this file makes little sense because it
is using a different colorspace (YUV) than your display (RGB).
Without dithering, you would get quantization artifacts no matter what.
@lachs0r
I did try enabling dithering too.
--dither-depth=auto always dither to 8: mpv_dither_auto.log
Here is the one with --dither-depth=10: mpv_dither_10.log
With 8 bit dithering, banding is reduced in the 10 bit test pattern.
With 10 bit dithering, banding is there, untouched, visually identical to without dithering.
https://linustechtips.com/main/topic/264296-do-any-current-amd-redeon-or-nvidia-gforce-graphics-cards-support-10-bit-colours-for-monitors/
http://nvidia.custhelp.com/app/answers/detail/a_id/3011/~/10-bit-per-color-support-on-nvidia-geforce-gpus
https://www.reddit.com/r/Amd/comments/4saxsv/do_amd_gpus_support_10_bit_color/
Can you upload the output of vulkaninfo?
@haasn
vulkaninfo.txt
This time I tested with a RGB48 picture. (disabled dithering)
Log: 16bit_tif.log
I could see clearly lines between 255 shades when using mpv and madvr windowed 8 bit. With madvr full screen exclusive 10 bit, the picture is smooth.
@zc62 From your vulkaninfo link:
Presentable Surfaces:
=====================
GPU id : 0 (GeForce GTX 970)
Surface type : VK_KHR_win32_surface
Formats: count = 2
B8G8R8A8_UNORM
B8G8R8A8_SRGB
Present Modes: count = 3
FIFO_KHR
FIFO_RELAXED_KHR
MAILBOX_KHR
This means that your version of vulkan only makes available 8-bit surfaces. This is either a limitation of your drivers, of the windows compositor, or (most likely) a combination of both. So from the vulkan side of things, there's basically nothing we can do except complain to your vendor.
Your vulkan instance also doesn't support “direct” display access, so we can't bypass the compositor and render directly to the display with 10-bit precision either.
d3d11 is most likely going to be your best bet, but @rossy needs to help you here.
@haasn Thanks. Could you tell me where one can find about whether the vulkan instance supports "direct" display access or not in the vulkaninfo log?
I wonder if switching to windows 10 1709 helps...
@haasn Thanks. Could you tell me where one can find about whether the vulkan instance supports "direct" display access or not in the vulkaninfo log?
It would have to support the VK_KHR_display extension. But I think it's a red herring, since that would most likely also imply being unable to have the windows compositor running at the same time on the display. It's meant for VR headsets and the like, and also for actually implementing compositors (e.g. wayland) or for embedded applications (e.g. rendering to framebuffer).
Your first priority should be making sure that 10-bit surface formats are supported, since these will be picked up and used by mpv automatically when running in vulkan mode.
Tried --gpu-api=d3d11, no luck. Still 8 bit.
I asked one who has a 10 bit monitor, a GTX1070 card and windows 10 1703, his vulkaninfo also gives 8 bit only and no VK_KHR_display. He did test d3d11 too, the same outcome as mine.
I don't know if this observation is related or not, the log (both mine and his) always says:
[ 0.200][v][vo/gpu] Reported display depth: 8
Wondering if there is anyone succeeded in letting mpv output 10 bit on any version of MS windows?
It doesn't look like it that --ontop leads to FSE with D3D11, I don't notice any difference to borderless on Windows 10 AU (with Vulkan, I notice a short black switching transition which is not there without --ontop).
@aufkrawall Have you ever gotten 10 bit with any of these combinations? Sounds like vulkan+ontop gives you true FSE?
I can't test if output is actually 10 bit since my display doesn't support it.
It is frustrating that I couldn't even collect one sample... Maybe mpv users are mostly on Linux or macOS.
I re-tested today because last time I forgot to turn Aero and desktop composition off, but it still does not seem to give me any indication of 10 bit output among all the possible gpu-context that I can make them display this log:
d3d11.log:[ 0.153][v][vo/gpu] Reported display depth: 8
d3d11.log:[ 0.154][v][vo/gpu] Reported display depth: 8
opengl-angle.log:[ 0.143][v][vo/gpu] Reported display depth: 8
opengl-angle.log:[ 0.143][v][vo/gpu] Reported display depth: 8
opengl-dxinterop.log:[ 0.209][v][vo/gpu] Reported display depth: 8
opengl-dxinterop.log:[ 0.209][v][vo/gpu] Reported display depth: 8
opengl-win.log:[ 0.223][v][vo/gpu] Reported display depth: 8
opengl-win.log:[ 0.224][v][vo/gpu] Reported display depth: 8
vulkan.log:[ 0.299][v][vo/gpu] Reported display depth: 8
vulkan.log:[ 0.299][v][vo/gpu] Reported display depth: 8
while I expect 8 and 12 (or 10?) for my 8 bit monitor + 12 bit projector set.
Logs:
d3d11.log
opengl-angle.log
opengl-dxinterop.log
opengl-win.log
vulkan.log
@haasn @rossy Now I understand because of the limitation of OpenGL/Vulkan implementation from my vendor (angle says Google Inc., vulkan is from Nvidia driver), 10 bit shouldn't be expected with gpu-api=opengl or vulkan. But how about d3d11? Is d3d11 in mpv written with native 10 bit output support? Because madVR can work with 10 bit, I am curious if this is a bug or just a feature that has not been implemented yet? (I couldn't really find time to read the source code to find it out on my own... sorry)
Related issue is #3613. It didn't help because discussions were all about macOS and linux.
I think Rossy once said that the D3D11 renderer has to use a newer DXGI version in order to output 10 bit, I guess that's not implemented yet.
I can understand that it may feel a bit unsatisfying when you have a 10 bit capable display, however 10 bit output is not that important. It basically only means lower noise level when doing dithering, and when outputting 8 bit, dithering noise already is invisible when watching from a normal position.
By the way, this is not directly relevant to your issue but I decided to go ahead and test it again to make sure:
glxinfo lists only 10-bit framebuffers in this configuration, as does xdpyinfo (only lists 10-bit visuals)vulkaninfo lists 10-bit surface formats:Presentable Surfaces:
=====================
GPU id : 0 (GeForce GTX 970)
Surface type : VK_KHR_xcb_surface
Formats: count = 2
A2B10G10R10_UNORM_PACK32
A2B10G10R10_SNORM_PACK32
Present Modes: count = 3
FIFO_KHR
FIFO_RELAXED_KHR
IMMEDIATE_KHR
--gpu-api=vulkan successfully detects this as 10-bit and dithers to the correct depth: vo/gpu: Reported display depth: 10
...
vo/gpu: Dither to 10.
So the issue is neither a limitation of the vulkan implementation in mpv, nor is it of nvidia's hardware, vulkan drivers, or anything else along that stack. The only limitation is due to Microsoft Windows.
In Windows, you need NVIDIA Quadro if you want that functionality. Capitalism, Ho!
What about Intel or AMD?
With the HDR garbage, 10 bit output is becoming a common requirement too.
@haasn Yes I understand the limitation comes from MS Windows and other software vendors. But when it comes to d3d11, I think the system is ready to get 10 bit (as what madVR has already accomplished) and there is work to do in mpv?
@Jj0YzL5nvJ
(I was wrong in my previous comment. Edit:)
Yes the page says:
NVIDIA Geforce graphics cards have offered 10-bit per color out to a full screen Direct X surface since the Geforce 200 series GPUs.
So we do have 10 bit support with FSE DX (borderless FS for win 10 CU), as madVR has showed to me.
Due to the way most applications use traditional Windows API functions to create the application UI and viewport display
OpenGL 10-bit per color buffers which require an NVIDIA Quadro GPU with DisplayPort connector
This tells me that mpv with opengl/vulkan may need a Quadro card in windows.
@wm4
I know some AMD cards support 10 bit, not limited to Firepro only. But I don't have one, can somebody test?
Intel Graphics support 10-bit color since Sandy Bridge (2nd Generation). The driver will automatically enable 10-bit when running full screen DirectX* applications that supports it on a 10-bit capable Display.
I do have a laptop with intel i5-5200u, but if I remember correctly, last time I tested with it I didn't get 10 bit at all, madvr or mpv, Win 10 1709. Maybe it is because I was using optimus to let GTX940m render and output to intel.
It looks like our swapchain creation code does not try 10 bit formats at all. I think rossy actually made experiments into this direction.
Yeah. d3d11 and angle will always use an 8-bit backbuffer because it will only try to create the formats in this list:
https://github.com/mpv-player/mpv/blob/a721dac6012d/video/out/gpu/d3d11_helpers.c#L320-L323
We could add the rgb10_a2 and rgba16f formats to that list, but I think mpv would always choose them if we did that, even on 8-bit monitors. The proper solution would be to detect if the current monitor uses high bit-depth and only use the high bit-depth backbuffers in that case, like MS's D3D12HDR sample. Detecting high bit-depth support requires DXGI 1.6, so Windows 10 version 1709.
As for fullscreen exclusive mode, d3d11, angle and dxinterop should never use it, because they never call SetFullscreenState(). Only opengl (win) and vulkan (winvk) can enter exclusive mode, but the driver decides when to enter exclusive mode and mpv doesn't get much of a say. The documentation for the --ontop option is a bit misleading because it only applies to opengl and it only makes the driver more likely to decide to enter exclusive mode.
But how about d3d11? Is d3d11 in mpv written with native 10 bit output support? Because madVR can work with 10 bit, I am curious if this is a bug or just a feature that has not been implemented yet?
Yep, this is a feature request. mpv's d3d11 backend is the most likely to gain 10-bit support in the future, but it doesn't support it at the moment. I'm probably not the best person to implement it because I don't have hardware to test with, but if no one else does it, I might try to add 10-bit support blindly.
Detecting high bit-depth support requires DXGI 1.6, so Windows 10 version 1709.
I think it will be great that mpv in win 10 1709 and above can auto-detect the bit-depth. On the other hand, do you think it is possible for win 7 users to enable 10 bit manually? Because I think madVR does not have an auto-detection mechanism either. One sets the bit-depth manually for each device:

As for fullscreen exclusive mode, d3d11, angle and dxinterop should never use it, because they never call SetFullscreenState().
Is it possible to add fullscreen exclusive to them?
I don't think Rossy actually meant that mpv currently can already make use of Win 10 1709 DXGI 1.6 to detect 10 bit capable displays (it sounds like it the way you wrote it), but it's the way he would implement 10 bit output functionality in future. :)
Yes, I think I got his point, that's why I changed the title to feature request. I mean without implementing auto-detection for 10 bit, we can start from implementing manual selection of the output bit-depth. The auto-detection will definitely be a great bonus if implemented, but will of course work only on win 10 1709 and later, while manual selection should work for windows 7.
There's probably still some chance btw. that it currently already works with Vulkan + Win 10 Creator's Update 2 since also madVR 10 bit output works with this version in borderless windowed fullscreen.
That might not be the case, because madVR utilizes DX, not vulkan. According to @Jj0YzL5nvJ 10-bit per color support on NVIDIA Geforce GPUs, at least OpenGL programs need Quadro cards. Vulkan? I don't know, but I don't see 10 bit from vulkaninfo (nvidia 940M + intel 5200u + Win10 1709).
Is it possible to add fullscreen exclusive to them?
Yep. Support for exclusive FS would be useful. It's a bit harder than it sounds because of interactions with the win32 resizing code, but it shouldn't be too difficult to support.
I did something naive to test FSE and 10 bit in d3d11:
diff --git a/video/out/d3d11/context.c b/video/out/d3d11/context.c
index b02d2e80ce..55fc98df17 100644
--- a/video/out/d3d11/context.c
+++ b/video/out/d3d11/context.c
@@ -105,6 +105,7 @@ static bool resize(struct ra_ctx *ctx)
ra_tex_free(ctx->ra, &p->backbuffer);
+ hr = IDXGISwapChain_SetFullscreenState(p->swapchain, true, NULL);
hr = IDXGISwapChain_ResizeBuffers(p->swapchain, 0, ctx->vo->dwidth,
ctx->vo->dheight, DXGI_FORMAT_UNKNOWN, 0);
if (FAILED(hr)) {
diff --git a/video/out/gpu/d3d11_helpers.c b/video/out/gpu/d3d11_helpers.c
index b96b03a093..bcac2462a7 100644
--- a/video/out/gpu/d3d11_helpers.c
+++ b/video/out/gpu/d3d11_helpers.c
@@ -318,8 +318,9 @@ bool mp_d3d11_create_swapchain(ID3D11Device *dev, struct mp_log *log,
// Try B8G8R8A8_UNORM first, since at least in Windows 8, it's always the
// format of the desktop image
static const DXGI_FORMAT formats[] = {
- DXGI_FORMAT_B8G8R8A8_UNORM,
- DXGI_FORMAT_R8G8B8A8_UNORM,
+ DXGI_FORMAT_R10G10B10A2_UNORM,
+ //DXGI_FORMAT_B8G8R8A8_UNORM,
+ //DXGI_FORMAT_R8G8B8A8_UNORM,
};
static const int formats_len = MP_ARRAY_SIZE(formats);
bool flip = factory2 && opts->flip;
I do see the black screen transition that indicates a successful switch to FSE. I can also verify by eye that the output bit-depth is indeed 10 bit, although the log still shows
[ 0.727][v][vo/gpu] Reported display depth: 8
I guess what can be done are:
if (!fse && fullscreen && ontop) {
hr = IDXGISwapChain_SetFullscreenState(p->swapchain, true, NULL);
fse = true;
}
if (fse && (not fullscreen || not ontop)) {
hr = IDXGISwapChain_SetFullscreenState(p->swapchain, false, NULL);
fse = false;
}
static const DXGI_FORMAT formats_10[] = {
DXGI_FORMAT_R10G10B10A2_UNORM,
};
static const DXGI_FORMAT formats_8[] = {
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
};
and add some options to let users choose between 8 bit (default) and 10 bit. For example, --d3d11-10bit=yes to prefer 10 bit formats, and --10bit-screen=<all|current|0-32> will be useful for multi-screen setups (they may have different bit-depths).
The auto selection based on DXGI 1.6 may follow, giving win10 1709 the possibility of choosing --d3d11-10bit=auto.
I think --dither-depth=auto needs to respect this option, but might make the selection a bit complicated. Because when not in FSE (before win10 1709) or borderless FS (win10 1709), it still needs to dither to the original choice (usually 8), then change to 10 when it enters FS(E), and go back to 8 when leaves FS(E). (This may also apply to DXGI format being used, but it seems okay to use 10 bit formats while actually displaying 8 bit?) Again, before DXGI 1.6 is used we can make FSE a hard requirement.
@zc62 Ah great. I've also been experimenting with this. I have a branch that lets you manually set the format of the backbuffer and the DXGI colourspace tagging (no auto-detection yet here either.)
The branch is here: https://github.com/rossy/mpv/tree/high-bit-depth-experiment
Build here: https://files.jrg.systems/mpv-10bit-x86_64-20171226-git-a134537.7z
The (non-final) options are --d3d11-colorspace, --d3d11-format and --d3d11-exclusive (for exclusive FS.) As far as I can tell, there are only four combinations of --d3d11-colorspace and --d3d11-format that work:
--d3d11-colorspace=srgb --d3d11-format=rgba8 --target-trc=srgb --target-prim=bt.709--d3d11-colorspace=srgb --d3d11-format=rgb10_a2 --target-trc=srgb --target-prim=bt.709--d3d11-colorspace=linear --d3d11-format=rgba16f --target-trc=linear --target-prim=bt.709--d3d11-colorspace=hdr --d3d11-format=rgb10_a2 --target-trc=pq --target-prim=bt.2020Since I don't have test hardware myself, it would be great if people with high-bit-depth, wide-gamut or HDR monitors could test this and tell me which modes are useful and which work on the desktop, in windowed fullscreen and in exclusive fullscreen.
As for auto-detection, I have a tool that dumps the DXGI 1.6 data.
Source: https://gist.github.com/rossy/fb7b476d272ae166d635156f07d20264
Binary: https://files.jrg.systems/dxgiinfo.7z
As above, if anyone has high-bit-depth, wide-gamut or HDR monitors and Windows 10 1709, it would be great if you could run that tool on your computer and report the results. My results are here. For high-bit-depth, there should be at least one output with Bits-per-color: 10 or Bits-per-color: 12.
I can also verify by eye that the output bit-depth is indeed 10 bit, although the log still shows
Reported display depth: 8
Yeah, the display depth detection is pretty naive at the moment. That should be fixed in my branch.
I think
--dither-depth=autoneeds to respect this option, but might make the selection a bit complicated. Because when not in FSE (before win10 1709) or borderless FS (win10 1709), it still needs to dither to the original choice (usually 8), then change to 10 when it enters FS(E), and go back to 8 when leaves FS(E). (This may also apply to DXGI format being used, but it seems okay to use 10 bit formats while actually displaying 8 bit?) Again, before DXGI 1.6 is used we can make FSE a hard requirement.
Well, the same formats supported for borderless FS should be supported in windowed mode as well. I don't know whether it truncates to 8-bit or not though. For exclusive FS, you're right. As far as I remember, Windows 7 supports formats for scan-out (rgb10_a2) that are not supported in windowed mode.
Does --d3d11-exclusive still allow the player to be started in windowed mode? I think that would be most convenient. Really good to see the current --ontop method disappearing, maybe haasn has something similar in mind for Vulkan? :)
@aufkrawall Yep. --d3d11-exclusive just changes what happens when mpv enters fullscreen mode.
Really good to see the current --ontop method disappearing, maybe haasn has something similar in mind for Vulkan? :)
Well, this is definitely not the final version of the user interface. It's just an experiment. It might be an idea to make a generic --video-exclusive option (mirroring --audio-exclusive) so that any VO or gpu-context that supports taking exclusive control of a display device can share the same option.
As for --ontop, that was only ever a coincidence. There is no API in Windows to make an OpenGL app use exclusive fullscreen, but at some point it was discovered that the --ontop option made it more likely for some OpenGL drivers (I forget which ones) to decide to enter exclusive fullscreen mode. Eventually this behaviour was documented, but it wasn't intentional. If we add an intentional way to make mpv use exclusive fullscreen, it should definitely have its own option.
@rossy Thanks for the great job!
I tested the 10-bit BT.709 case, it seems that the swapchain is still created with 8-bit format. I added a few lines to see why:
diff --git a/video/out/gpu/d3d11_helpers.c b/video/out/gpu/d3d11_helpers.c
index d546404ac9..144b46f47e 100644
--- a/video/out/gpu/d3d11_helpers.c
+++ b/video/out/gpu/d3d11_helpers.c
@@ -372,8 +372,11 @@ bool mp_d3d11_create_swapchain(ID3D11Device *dev, struct mp_log *log,
&swapchain);
}
if (SUCCEEDED(hr)) {
+ mp_verbose(log, "Opt format: %u\n", (unsigned)opts->format);
mp_verbose(log, "Swapchain format: %u\n", (unsigned)formats[i]);
break;
+ } else {
+ mp_verbose(log, "Format[%d] = %u failed\n", i, (unsigned)formats[i]);
}
}
if (SUCCEEDED(hr))
which gives me:
[ 0.128][v][vo/gpu/d3d11] Format[0] = 24 failed
[ 0.129][v][vo/gpu/d3d11] Opt format: 24
[ 0.129][v][vo/gpu/d3d11] Swapchain format: 87
while the numbers mean:
DXGI_FORMAT_R10G10B10A2_UNORM = 24,
DXGI_FORMAT_B8G8R8A8_UNORM = 87,
Not sure why R10G10B10A2 failed here, because I did get it working in my test.
With mpv-10bit-x86_64-20171226-git-a134537.7z and no extra config files, the following 3 combinations are tested, with and without --d3d11-exclusive. Command line options and logs are attached. (https://github.com/mpv-player/mpv/files/1587757/log-mpv-10bit-test.zip)
--d3d11-colorspace=srgb --d3d11-format=rgb10_a2 --target-trc=srgb --target-prim=bt.709
10-bit sRGB/BT.709
--d3d11-colorspace=linear --d3d11-format=rgba16f --target-trc=linear --target-prim=bt.709
16-bit linear RGB
--d3d11-colorspace=hdr --d3d11-format=rgb10_a2 --target-trc=pq --target-prim=bt.2020
10-bit HDR
Checked by eyes, when in full-screen, the 10-bit test image shows no artificial noise under all the three combinations with --d3d11-exclusive. And linear / rgba16f works without --d3d11-exclusive while the other two does not. In windowed mode none works.
Devices : Monitor LG 27UD58P (10bit, RGB gamut only) and Geforce 1070,
OS : Windows 10 1703
dxgiinfo output: Reported display depth: 8
More tests here. It seems that rgb10_a2 fails in every case. In contrary, rgba16f works. So my successful runs are:
--d3d11-colorspace=srgb --d3d11-format=rgba16f --target-trc=srgb --target-prim=bt.709--d3d11-colorspace=linear --d3d11-format=rgba16f --target-trc=linear --target-prim=bt.709--d3d11-colorspace=hdr --d3d11-format=rgba16f --target-trc=pq --target-prim=bt.2020How does a 16-bit float format actually work for a 10/12-bit device? How is it compared to 10-bit formats?
BTW, it looks like --d3d11-exclusive does not work properly with --fullscreen. Without --fullscreen, I double click the window then mpv correctly enters FSE. But with --fullscreen, mpv starts full screened but is not in exclusive mode.
Here is a full table of test result on my machine, target-trc and target-prim always follow --d3d11-colorspace so not included in the table.
| Colorspace | Format | Exclusive | Correct display in fullscreen |
| ------- | ----------- | ------------- | --- |
| srgb | rgb10_a2 | noexclusive | Fail (8bit-like) |
| hdr | rgb10_a2 | noexclusive | Fail (8bit-like) |
| linear | rgb10_a2 | noexclusive | Fail (8bit-like) |
| srgb | rgb10_a2 | exclusive | Good |
| hdr | rgb10_a2 | exclusive | Good |
| linear | rgb10_a2 | exclusive | Good |
| linear | rgba16f | noexclusive | Good |
| srgb | rgba16f | noexclusive | Good |
| hdr | rgba16f | noexclusive | Good |
| linear | rgba16f | exclusive | Good |
| srgb | rgba16f | exclusive | Good |
| hdr | rgba16f | exclusive | Good |
Only rga10_a2 requires exclusive full-screen to work but other combinations all work.
There's also #5161 (Notify the screen to change to HDR10 / Dolby Vision mode)
@WFKala I guess your
Correct display in fullscreen
Fail
means the swapchain is created successfully with rgb10_a2 format but the outcome looks like 8-bit, right?
Correct display in fullscreen
Fail
means the swapchain is created successfully with rgb10_a2 format but the outcome looks like 8-bit, right?
Yes, I have edited the comment to clarify that.
These tests are pretty useful. I guess the compositor doesn't like the 10 bit format?
OK I figured out why my naive test managed to use rgb10_a2.
[ 0.154][d][vo/gpu/d3d11] Failed to create flip-model swapchain, trying bitblt
[ 0.154][v][vo/gpu/d3d11] Swapchain format: 24
[ 0.154][v][vo/gpu/d3d11] Using DXGI 1.2+
[ 0.154][v][vo/gpu/d3d11] Using bitblt-model presentation
Because I had only rgb10_a2 in formats, if the flip-model fails, the bitblt-model will be tested and used. But in the current implementation of @rossy , it seems that once a format, even if the format is different from user-specified format, succeeded in flip-model swapchain creation, this format will be used. Then the user-specified d3d11-format will never be tested with bitblt-model. Is this intentional? (Personally I know nothing about what flip-model and bitblt-model mean... Do we want to prevent using bitblt?)
I did realize there is a --d3d11-flip option. Windows 7 seems to have bad support for flip-model. I think I can use --d3d11-flip=no then.
@rossy here are the results from your test app on a 12bit display, not sure if Coordinates is meant to be the display resolution, if so that's wrong as 4k (3840x2160)
Adapter 0:
Device Name: NVIDIA GeForce GTX 960
Device ID: 10de:1401 (rev a1)
Subsystem ID: 1043:8520
LUID: 0000000000008bb5
Output 0:
Device Name: \\.\DISPLAY1
Coordinates: 1920x1080+0+0
Attached to desktop: TRUE
Bits-per-color: 12
Color space: DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 (0)
Red primary: 0.660, 0.340
Green primary: 0.245, 0.670
Blue primary: 0.130, 0.041
White point: 0.313, 0.330
Min luminance: 0.01 nits
Max luminance: 1499 nits
Max full-frame luminance: 799 nits
Desktop mode: DXGI_FORMAT_B8G8R8A8_UNORM (87)
Adapter 1:
Device Name: Microsoft Basic Render Driver
Device ID: 1414:008c (rev 00)
Subsystem ID: 0000:0000
LUID: 000000000000952f
And with Windows HDR enabled
Adapter 0:
Device Name: NVIDIA GeForce GTX 960
Device ID: 10de:1401 (rev a1)
Subsystem ID: 1043:8520
LUID: 0000000000008bb5
Output 0:
Device Name: \\.\DISPLAY1
Coordinates: 1920x1080+0+0
Attached to desktop: TRUE
Bits-per-color: 12
Color space: DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 (12)
Red primary: 0.660, 0.340
Green primary: 0.245, 0.670
Blue primary: 0.130, 0.041
White point: 0.313, 0.330
Min luminance: 0.01 nits
Max luminance: 1499 nits
Max full-frame luminance: 799 nits
Desktop mode: DXGI_FORMAT_B8G8R8A8_UNORM (87)
Adapter 1:
Device Name: Microsoft Basic Render Driver
Device ID: 1414:008c (rev 00)
Subsystem ID: 0000:0000
LUID: 000000000000952f
Totally up for helping test / develop a fix as I would really like to Plex working with 4K HDR so I don't have to mess around with physical media,.
Tried to get a Windows dev environment up and running for this,so I could play around with it some more for, but every set of instructions for Windows seems to fail.
I've tried the following instructions to get a working environment:
All attempts where made on a current Windows 10 machines. Any pointers would be appreciated. I would like to try and avoid cross compiling from Linux if possible.
@stevenh If using MSYS2, try compiling ffmpeg git master. Remove ffmpeg you have installed then ./configure --prefix=$MSYSTEM_PREFIX && make && make install.
I got replies saying "you need ffmpeg git master" in PR #5182, but it seems that the guide does not really say this at all.
Note that if you want to get d3d11 backend to work you need to compile shaderc and crossc as well. Then copy those *.a files to $MSYSTEM_PREFIX/lib
Thanks @zc62 that got a working version of ffmpeg.
Looks like I'll need d3d11 backend so looking for any advice you have to get shaderc compiling?
@stevenh Simply follow what is in their readme: https://github.com/google/shaderc/blob/master/README.md#getting-and-building-shaderc
Here is the list of library files you may need (see 4.) but this document is slightly outdated. Some of the paths are different from what I got. Copy what you really get to /mingw64/lib: https://github.com/google/shaderc/tree/master/libshaderc#integrating-libshaderc
crossc is simpler, just clone SPIRV-Cross to crossc/SPIRV-Cross then simply make. Then you will get libcrossc.a.
@zc62 unfortunately I tried those instructions but no go as I couldnt get a working Ninja / cmake in MSYS2.
It seems to require Visual Studio 2013 Update 4 or later, inferring that a build under MSYS2 isn't possible?
@stevenh pacman -S cmake mingw-w64-x86_64-ninja
Much appreciated @zc62 had to manually install the header files along side the libs for shaderc but at least now I have been able to build mpv so thank you very much for the help.
This is the little shell script I used to do that.
#!/bin/sh
libdir="/mingw64/lib"
includedir="/mingw64/include"
for i in `find build -name '*.a'`; do
echo "Installing $i..."
cp $i $libdir
if [ 0 -ne $? ]; then
echo "Failed to install $i to $libdir"
exit 1
fi
done
for i in `find src -name include | grep -v third_party`; do
echo "Installing $i..."
rsync -av $i/ $includedir/
if [ 0 -ne $? ]; then
echo "Failed to sync $i to $includedir"
exit 1
fi
done
For reference the problem I had with ninja and cmake was that at one point I had a none mingw-w64-x86_64 of cmake, which then messed up the build directory, so even when I corrected that mistake it wasn't happy.
For crossc I also did a make install to get all the relevant files.
Apologies to everyone else for side tracking this thread to get me this far.
what happend to "full screen exclusive mode" in this commit ?
Even when HDR is switched on manually, Windows treats mpv as an SDR application and tone maps it to the "SDR content appearance" slider brightness, and uses SDR gamut and EOTF within the HDR signal. Maximizing the slider only allows the use of a higher peak brightness, but the gamut and EOTF are still incorrect.
So even in windowed and non-exclusive fullscreen mode, the correct DXGI format must be used so that HDR content isn't remapped to SDR.
Nvidia just allowed 10-bit color on GeForce desktop graphics cards (Pascal and above) in the latest Studio drivers: https://pcper.com/2019/07/nvidia-studio-driver-30-bit-color-geforce-titan/
I have a 10-bit capable monitor (LG 27UD68-W). I installed the Studio driver, turned on 10-bit colors, and tested @rossy 's build. I can confirm that the AVS Forum 10-bit sample looks smooth only when I have the screen in 10-bit mode and configure the build to use a 10-bit format with --d3d11-colorspace=srgb --d3d11-format=rgb10_a2 --target-trc=srgb --target-prim=bt.709. (Works both in fullscreen and windowed mode.)
dxgiinfo gives this information:
Adapter 0:
Device Name: NVIDIA GeForce GTX 1660 Ti
Device ID: 10de:2182 (rev a1)
Subsystem ID: 1043:86a3
LUID: 000000000067cdd2
Output 0:
Device Name: \\.\DISPLAY7
Coordinates: 2560x1440+0+0
Attached to desktop: TRUE
Bits-per-color: 10
Color space: DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 (0)
Red primary: 0.652, 0.335
Green primary: 0.305, 0.637
Blue primary: 0.148, 0.062
White point: 0.313, 0.329
Min luminance: 0.5 nits
Max luminance: 270 nits
Max full-frame luminance: 270 nits
Desktop mode: DXGI_FORMAT_B8G8R8A8_UNORM (87)
Output 1:
Device Name: \\.\DISPLAY6
Coordinates: 1920x1080-16+3840
Attached to desktop: TRUE
Bits-per-color: 8
Color space: DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 (0)
Red primary: 0.641, 0.338
Green primary: 0.315, 0.629
Blue primary: 0.159, 0.059
White point: 0.313, 0.329
Min luminance: 0.5 nits
Max luminance: 270 nits
Max full-frame luminance: 270 nits
Desktop mode: DXGI_FORMAT_B8G8R8A8_UNORM (87)
Adapter 1:
Device Name: Microsoft Basic Render Driver
Device ID: 1414:008c (rev 00)
Subsystem ID: 0000:0000
LUID: 000000000000b962
Might be a little bit off-topic (since we are mainly talking about the d3d11 native implementation of 10 bit presentation), I just want to recall that @haasn mentioned if vulkaninfo shows a presentable 10 bit surface format, it is likely that 10 bit should work (or it is just a necessary requirement?) Because recently I migrated to an AMD GPU, whose vulkaninfo shows:
Presentable Surfaces:
=====================
GPU id : 0 (AMD Radeon RX 5700 XT)
Surface type : VK_KHR_win32_surface
Formats: count = 20
B8G8R8A8_UNORM
B8G8R8A8_SNORM
B8G8R8A8_SRGB
R16G16B16A16_UNORM
R16G16B16A16_SNORM
R16G16B16A16_SFLOAT
A2R10G10B10_UNORM_PACK32
A2B10G10R10_UNORM_PACK32
B10G11R11_UFLOAT_PACK32
R8G8B8A8_UNORM
A8B8G8R8_UNORM_PACK32
R8G8B8A8_SNORM
R8G8B8A8_SRGB
A8B8G8R8_SNORM_PACK32
A8B8G8R8_SRGB_PACK32
R5G6B5_UNORM_PACK16
B5G6R5_UNORM_PACK16
A1R5G5B5_UNORM_PACK16
R4G4B4A4_UNORM_PACK16
B4G4R4A4_UNORM_PACK16
which looks like it has 10 bit capable formats.
Full vulkaninfo see here
==========
VULKANINFO
==========
Vulkan Instance Version: 1.1.106
Instance Extensions:
====================
Instance Extensions count = 11
VK_EXT_debug_report : extension revision 9
VK_EXT_debug_utils : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 4
VK_KHR_device_group_creation : extension revision 1
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities: extension revision 1
VK_KHR_get_physical_device_properties2: extension revision 1
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_win32_surface : extension revision 6
Layers: count = 4
=======
VK_LAYER_AMD_switchable_graphics (AMD switchable graphics layer) Vulkan version 1.1.109, layer version 1
Layer Extensions count = 0
Devices count = 1
GPU id : 0 (AMD Radeon RX 5700 XT)
Layer-Device Extensions count = 0
VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.106, layer version 1
Layer Extensions count = 0
Devices count = 1
GPU id : 0 (AMD Radeon RX 5700 XT)
Layer-Device Extensions count = 0
VK_LAYER_VALVE_steam_fossilize (Steam Pipeline Caching Layer) Vulkan version 1.1.73, layer version 1
Layer Extensions count = 0
Devices count = 1
GPU id : 0 (AMD Radeon RX 5700 XT)
Layer-Device Extensions count = 0
VK_LAYER_VALVE_steam_overlay (Steam Overlay Layer) Vulkan version 1.1.73, layer version 1
Layer Extensions count = 0
Devices count = 1
GPU id : 0 (AMD Radeon RX 5700 XT)
Layer-Device Extensions count = 0
Presentable Surfaces:
=====================
GPU id : 0 (AMD Radeon RX 5700 XT)
Surface type : VK_KHR_win32_surface
Formats: count = 20
B8G8R8A8_UNORM
B8G8R8A8_SNORM
B8G8R8A8_SRGB
R16G16B16A16_UNORM
R16G16B16A16_SNORM
R16G16B16A16_SFLOAT
A2R10G10B10_UNORM_PACK32
A2B10G10R10_UNORM_PACK32
B10G11R11_UFLOAT_PACK32
R8G8B8A8_UNORM
A8B8G8R8_UNORM_PACK32
R8G8B8A8_SNORM
R8G8B8A8_SRGB
A8B8G8R8_SNORM_PACK32
A8B8G8R8_SRGB_PACK32
R5G6B5_UNORM_PACK16
B5G6R5_UNORM_PACK16
A1R5G5B5_UNORM_PACK16
R4G4B4A4_UNORM_PACK16
B4G4R4A4_UNORM_PACK16
Present Modes: count = 3
IMMEDIATE_KHR
FIFO_KHR
FIFO_RELAXED_KHR
VkSurfaceCapabilitiesKHR:
minImageCount = 1
maxImageCount = 16
currentExtent:
width = 256
height = 256
minImageExtent:
width = 256
height = 256
maxImageExtent:
width = 256
height = 256
maxImageArrayLayers = 1
supportedTransform:
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
currentTransform:
VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
supportedCompositeAlpha:
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
supportedUsageFlags:
VK_IMAGE_USAGE_TRANSFER_SRC_BIT
VK_IMAGE_USAGE_TRANSFER_DST_BIT
VK_IMAGE_USAGE_SAMPLED_BIT
VK_IMAGE_USAGE_STORAGE_BIT
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
Groups :
========
Device Group Properties (Group 0) :
physicalDeviceCount = 1
AMD Radeon RX 5700 XT (ID: 0)
subsetAllocation = 0
Device Group Present Capabilities (Group 0) :
AMD Radeon RX 5700 XT (ID: 0)
Can present images from the following devices:
AMD Radeon RX 5700 XT (ID: 0)
Present modes:
VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
Device Properties and Extensions :
==================================
GPU0
VkPhysicalDeviceProperties:
===========================
apiVersion = 0x401071 (1.1.113)
driverVersion = 8388707 (0x800063)
vendorID = 0x1002
deviceID = 0x731f
deviceType = DISCRETE_GPU
deviceName = AMD Radeon RX 5700 XT
VkPhysicalDeviceLimits:
-----------------------
maxImageDimension1D = 16384
maxImageDimension2D = 16384
maxImageDimension3D = 2048
maxImageDimensionCube = 16384
maxImageArrayLayers = 8192
maxTexelBufferElements = 0xffffffff
maxUniformBufferRange = 0xffffffff
maxStorageBufferRange = 0xffffffff
maxPushConstantsSize = 128
maxMemoryAllocationCount = 4096
maxSamplerAllocationCount = 1048576
bufferImageGranularity = 0x1
sparseAddressSpaceSize = 0xffd00000000
maxBoundDescriptorSets = 32
maxPerStageDescriptorSamplers = 4294967295
maxPerStageDescriptorUniformBuffers = 4294967295
maxPerStageDescriptorStorageBuffers = 4294967295
maxPerStageDescriptorSampledImages = 4294967295
maxPerStageDescriptorStorageImages = 4294967295
maxPerStageDescriptorInputAttachments = 4294967295
maxPerStageResources = 4294967295
maxDescriptorSetSamplers = 4294967295
maxDescriptorSetUniformBuffers = 4294967295
maxDescriptorSetUniformBuffersDynamic = 8
maxDescriptorSetStorageBuffers = 4294967295
maxDescriptorSetStorageBuffersDynamic = 8
maxDescriptorSetSampledImages = 4294967295
maxDescriptorSetStorageImages = 4294967295
maxDescriptorSetInputAttachments = 4294967295
maxVertexInputAttributes = 64
maxVertexInputBindings = 32
maxVertexInputAttributeOffset = 0xffffffff
maxVertexInputBindingStride = 0x3fff
maxVertexOutputComponents = 128
maxTessellationGenerationLevel = 64
maxTessellationPatchSize = 32
maxTessellationControlPerVertexInputComponents = 128
maxTessellationControlPerVertexOutputComponents = 128
maxTessellationControlPerPatchOutputComponents = 120
maxTessellationControlTotalOutputComponents = 4096
maxTessellationEvaluationInputComponents = 128
maxTessellationEvaluationOutputComponents = 128
maxGeometryShaderInvocations = 127
maxGeometryInputComponents = 128
maxGeometryOutputComponents = 128
maxGeometryOutputVertices = 1024
maxGeometryTotalOutputComponents = 16384
maxFragmentInputComponents = 128
maxFragmentOutputAttachments = 8
maxFragmentDualSrcAttachments = 1
maxFragmentCombinedOutputResources = 4294967295
maxComputeSharedMemorySize = 0x8000
maxComputeWorkGroupCount[0] = 65535
maxComputeWorkGroupCount[1] = 65535
maxComputeWorkGroupCount[2] = 65535
maxComputeWorkGroupInvocations = 1024
maxComputeWorkGroupSize[0] = 1024
maxComputeWorkGroupSize[1] = 1024
maxComputeWorkGroupSize[2] = 1024
subPixelPrecisionBits = 8
subTexelPrecisionBits = 8
mipmapPrecisionBits = 8
maxDrawIndexedIndexValue = 4294967295
maxDrawIndirectCount = 4294967295
maxSamplerLodBias = 15.996094
maxSamplerAnisotropy = 16.000000
maxViewports = 16
maxViewportDimensions[0] = 16384
maxViewportDimensions[1] = 16384
viewportBoundsRange[0] = -32768.000000
viewportBoundsRange[1] = 32767.000000
viewportSubPixelBits = 8
minMemoryMapAlignment = 64
minTexelBufferOffsetAlignment = 0x1
minUniformBufferOffsetAlignment = 0x10
minStorageBufferOffsetAlignment = 0x4
minTexelOffset = -64
maxTexelOffset = 63
minTexelGatherOffset = -32
maxTexelGatherOffset = 31
minInterpolationOffset = -2.000000
maxInterpolationOffset = 2.000000
subPixelInterpolationOffsetBits = 8
maxFramebufferWidth = 16384
maxFramebufferHeight = 16384
maxFramebufferLayers = 2048
framebufferColorSampleCounts = 15
framebufferDepthSampleCounts = 15
framebufferStencilSampleCounts = 15
framebufferNoAttachmentsSampleCounts = 15
maxColorAttachments = 8
sampledImageColorSampleCounts = 15
sampledImageDepthSampleCounts = 15
sampledImageStencilSampleCounts = 15
sampledImageIntegerSampleCounts = 15
storageImageSampleCounts = 15
maxSampleMaskWords = 1
timestampComputeAndGraphics = 1
timestampPeriod = 10.000000
maxClipDistances = 8
maxCullDistances = 8
maxCombinedClipAndCullDistances = 8
discreteQueuePriorities = 2
pointSizeRange[0] = 0.000000
pointSizeRange[1] = 8191.875000
lineWidthRange[0] = 0.000000
lineWidthRange[1] = 8191.875000
pointSizeGranularity = 0.125000
lineWidthGranularity = 0.125000
strictLines = 0
standardSampleLocations = 1
optimalBufferCopyOffsetAlignment = 0x1
optimalBufferCopyRowPitchAlignment = 0x1
nonCoherentAtomSize = 0x80
VkPhysicalDeviceSparseProperties:
---------------------------------
residencyStandard2DBlockShape = 1
residencyStandard2DMultisampleBlockShape = 0
residencyStandard3DBlockShape = 1
residencyAlignedMipSize = 0
residencyNonResidentStrict = 1
VkPhysicalDevicePointClippingProperties:
========================================
pointClippingBehavior = 0
VkPhysicalDeviceMultiviewProperties:
====================================
maxMultiviewViewCount = 6
maxMultiviewInstanceIndex = 4294967295
VkPhysicalDeviceMaintenance3Properties:
=======================================
maxPerSetDescriptors = 4294967295
maxMemoryAllocationSize = 2147483648
VkPhysicalDeviceIDProperties:
=========================================
deviceUUID = 03000000-0000-0000-0000-000000000000
driverUUID = 414d442d-5749-4e2d-4452-560000000000
deviceLUIDValid = true
deviceLUID = 4e920000-00000000
deviceNodeMask = 0x00000001
VkPhysicalDeviceDriverProperties:
=================================
driverID = 1
driverName = AMD proprietary driver
driverInfo =
conformanceVersion:
major = 1
minor = 1
subminor = 1
patch = 2
VkPhysicalDeviceTransformFeedbackProperties
===========================================
maxTransformFeedbackStreams = 4
maxTransformFeedbackBuffers = 4
maxTransformFeedbackBufferSize = 4294967295
maxTransformFeedbackStreamDataSize = 512
maxTransformFeedbackBufferDataSize = 512
maxTransformFeedbackBufferDataStride = 512
transformFeedbackQueries = 1
transformFeedbackStreamsLinesTriangles = 1
transformFeedbackRasterizationStreamSelect = 0
transformFeedbackDraw = 1
VkPhysicalDeviceDepthStencilResolveProperties
============================================
supportedDepthResolveModes:
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR
VK_RESOLVE_MODE_MIN_BIT_KHR
VK_RESOLVE_MODE_MAX_BIT_KHR
supportedStencilResolveModes:
VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR
VK_RESOLVE_MODE_MIN_BIT_KHR
VK_RESOLVE_MODE_MAX_BIT_KHR
independentResolveNone = 1
independentResolve = 1
Device Extensions count = 83
VK_AMD_buffer_marker : extension revision 1
VK_AMD_calibrated_timestamps : extension revision 1
VK_AMD_display_native_hdr : extension revision 1
VK_AMD_draw_indirect_count : extension revision 1
VK_AMD_gcn_shader : extension revision 1
VK_AMD_gpa_interface : extension revision 1
VK_AMD_gpu_shader_half_float : extension revision 2
VK_AMD_gpu_shader_int16 : extension revision 2
VK_AMD_memory_overallocation_behavior: extension revision 1
VK_AMD_mixed_attachment_samples : extension revision 1
VK_AMD_negative_viewport_height : extension revision 1
VK_AMD_pipeline_compiler_control : extension revision 1
VK_AMD_shader_ballot : extension revision 1
VK_AMD_shader_core_properties : extension revision 1
VK_AMD_shader_core_properties2 : extension revision 1
VK_AMD_shader_explicit_vertex_parameter: extension revision 1
VK_AMD_shader_fragment_mask : extension revision 1
VK_AMD_shader_image_load_store_lod : extension revision 1
VK_AMD_shader_info : extension revision 1
VK_AMD_shader_trinary_minmax : extension revision 1
VK_AMD_texture_gather_bias_lod : extension revision 1
VK_AMD_wave_limits : extension revision 1
VK_EXT_conservative_rasterization : extension revision 1
VK_EXT_depth_clip_enable : extension revision 1
VK_EXT_depth_range_unrestricted : extension revision 1
VK_EXT_descriptor_indexing : extension revision 2
VK_EXT_external_memory_host : extension revision 1
VK_EXT_full_screen_exclusive : extension revision 3
VK_EXT_global_priority : extension revision 2
VK_EXT_hdr_metadata : extension revision 1
VK_EXT_host_query_reset : extension revision 1
VK_EXT_inline_uniform_block : extension revision 1
VK_EXT_memory_budget : extension revision 1
VK_EXT_memory_priority : extension revision 1
VK_EXT_queue_family_foreign : extension revision 1
VK_EXT_sample_locations : extension revision 1
VK_EXT_sampler_filter_minmax : extension revision 1
VK_EXT_scalar_block_layout : extension revision 1
VK_EXT_separate_stencil_usage : extension revision 1
VK_EXT_shader_stencil_export : extension revision 1
VK_EXT_shader_subgroup_ballot : extension revision 1
VK_EXT_shader_subgroup_vote : extension revision 1
VK_EXT_shader_viewport_index_layer : extension revision 1
VK_EXT_subgroup_size_control : extension revision 1
VK_EXT_transform_feedback : extension revision 1
VK_EXT_vertex_attribute_divisor : extension revision 3
VK_GOOGLE_decorate_string : extension revision 1
VK_GOOGLE_hlsl_functionality1 : extension revision 1
VK_KHR_16bit_storage : extension revision 1
VK_KHR_8bit_storage : extension revision 1
VK_KHR_bind_memory2 : extension revision 1
VK_KHR_create_renderpass2 : extension revision 1
VK_KHR_dedicated_allocation : extension revision 3
VK_KHR_depth_stencil_resolve : extension revision 1
VK_KHR_descriptor_update_template : extension revision 1
VK_KHR_device_group : extension revision 3
VK_KHR_draw_indirect_count : extension revision 1
VK_KHR_driver_properties : extension revision 1
VK_KHR_external_fence : extension revision 1
VK_KHR_external_fence_win32 : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_memory_win32 : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_win32 : extension revision 1
VK_KHR_get_memory_requirements2 : extension revision 1
VK_KHR_image_format_list : extension revision 1
VK_KHR_imageless_framebuffer : extension revision 1
VK_KHR_maintenance1 : extension revision 2
VK_KHR_maintenance2 : extension revision 1
VK_KHR_maintenance3 : extension revision 1
VK_KHR_multiview : extension revision 1
VK_KHR_relaxed_block_layout : extension revision 1
VK_KHR_sampler_mirror_clamp_to_edge : extension revision 1
VK_KHR_shader_atomic_int64 : extension revision 1
VK_KHR_shader_draw_parameters : extension revision 1
VK_KHR_shader_float16_int8 : extension revision 1
VK_KHR_storage_buffer_storage_class : extension revision 1
VK_KHR_swapchain : extension revision 70
VK_KHR_swapchain_mutable_format : extension revision 1
VK_KHR_uniform_buffer_standard_layout: extension revision 1
VK_KHR_variable_pointers : extension revision 1
VK_KHR_vulkan_memory_model : extension revision 3
VK_KHR_win32_keyed_mutex : extension revision 1
VkQueueFamilyProperties[0]:
===========================
queueFlags = GRAPHICS | COMPUTE | TRANSFER | SPARSE
queueCount = 1
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)
present support = true
VkQueueFamilyProperties[1]:
===========================
queueFlags = COMPUTE | TRANSFER | SPARSE
queueCount = 2
timestampValidBits = 64
minImageTransferGranularity = (1, 1, 1)
present support = true
VkQueueFamilyProperties[2]:
===========================
queueFlags = TRANSFER | SPARSE
queueCount = 2
timestampValidBits = 64
minImageTransferGranularity = (16, 16, 8)
present support = true
VkPhysicalDeviceMemoryProperties:
=================================
memoryHeapCount = 3
memoryHeaps[0] :
size = 8304721920 (0x1ef000000) (7.73 GiB)
budget = 6948115968
usage = 1048576
flags:
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryHeaps[1] :
size = 8295284736 (0x1ee700000) (7.73 GiB)
budget = 7708148121
usage = 659456
flags:
None
memoryHeaps[2] :
size = 268435456 (0x10000000) (256.00 MiB)
budget = 224585568
usage = 0
flags:
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypeCount = 4
memoryTypes[0] :
heapIndex = 0
propertyFlags = 0x1:
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
usable for:
OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
LINEAR: color images
memoryTypes[1] :
heapIndex = 1
propertyFlags = 0x6:
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
usable for:
OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
LINEAR: color images
memoryTypes[2] :
heapIndex = 2
propertyFlags = 0x7:
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
usable for:
OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
LINEAR: color images
memoryTypes[3] :
heapIndex = 1
propertyFlags = 0xe:
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
VK_MEMORY_PROPERTY_HOST_CACHED_BIT
usable for:
OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
LINEAR: color images
VkPhysicalDeviceFeatures:
=========================
robustBufferAccess = 1
fullDrawIndexUint32 = 1
imageCubeArray = 1
independentBlend = 1
geometryShader = 1
tessellationShader = 1
sampleRateShading = 1
dualSrcBlend = 1
logicOp = 1
multiDrawIndirect = 1
drawIndirectFirstInstance = 1
depthClamp = 1
depthBiasClamp = 1
fillModeNonSolid = 1
depthBounds = 1
wideLines = 1
largePoints = 1
alphaToOne = 0
multiViewport = 1
samplerAnisotropy = 1
textureCompressionETC2 = 0
textureCompressionASTC_LDR = 0
textureCompressionBC = 1
occlusionQueryPrecise = 1
pipelineStatisticsQuery = 1
vertexPipelineStoresAndAtomics = 1
fragmentStoresAndAtomics = 1
shaderTessellationAndGeometryPointSize = 1
shaderImageGatherExtended = 1
shaderStorageImageExtendedFormats = 1
shaderStorageImageMultisample = 1
shaderStorageImageReadWithoutFormat = 1
shaderStorageImageWriteWithoutFormat = 1
shaderUniformBufferArrayDynamicIndexing = 1
shaderSampledImageArrayDynamicIndexing = 1
shaderStorageBufferArrayDynamicIndexing = 1
shaderStorageImageArrayDynamicIndexing = 1
shaderClipDistance = 1
shaderCullDistance = 1
shaderFloat64 = 1
shaderInt64 = 1
shaderInt16 = 1
shaderResourceResidency = 1
shaderResourceMinLod = 1
sparseBinding = 1
sparseResidencyBuffer = 1
sparseResidencyImage2D = 1
sparseResidencyImage3D = 1
sparseResidency2Samples = 0
sparseResidency4Samples = 0
sparseResidency8Samples = 0
sparseResidency16Samples = 0
sparseResidencyAliased = 1
variableMultisampleRate = 1
inheritedQueries = 1
VkPhysicalDevice8BitStorageFeatures:
=====================================
storageBuffer8BitAccess = 1
uniformAndStorageBuffer8BitAccess = 1
storagePushConstant8 = 0
VkPhysicalDevice16BitStorageFeatures:
=====================================
storageBuffer16BitAccess = 1
uniformAndStorageBuffer16BitAccess = 1
storagePushConstant16 = 0
storageInputOutput16 = 1
VkPhysicalDeviceVariablePointerFeatures:
========================================
variablePointersStorageBuffer = 1
variablePointers = 1
VkPhysicalDeviceMultiviewFeatures:
==================================
multiview = 1
multiviewGeometryShader = 0
multiviewTessellationShader = 1
VkPhysicalDeviceFloat16Int8Features:
====================================
shaderFloat16 = 1
shaderInt8 = 1
VkPhysicalDeviceShaderAtomicInt64Features:
==========================================
shaderBufferInt64Atomics = 1
shaderSharedInt64Atomics = 1
VkPhysicalDeviceTransformFeedbackFeatures:
==========================================
transformFeedback = 1
geometryStreams = 1
VkPhysicalDeviceScalarBlockLayoutFeatures:
==========================================
scalarBlockLayout = 1
VkPhysicalDeviceMemoryPriorityFeatures:
======================================
memoryPriority = 1
Format Properties:
==================
FORMAT_R4G4_UNORM_PACK8,
FORMAT_E5B9G9R9_UFLOAT_PACK32:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
None
FORMAT_R4G4B4A4_UNORM_PACK16,
FORMAT_B4G4R4A4_UNORM_PACK16,
FORMAT_R5G6B5_UNORM_PACK16,
FORMAT_B5G6R5_UNORM_PACK16,
FORMAT_R5G5B5A1_UNORM_PACK16,
FORMAT_B5G5R5A1_UNORM_PACK16,
FORMAT_A1R5G5B5_UNORM_PACK16:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
None
FORMAT_R8_UNORM,
FORMAT_R8_SNORM,
FORMAT_R8G8_UNORM,
FORMAT_R8G8_SNORM,
FORMAT_R8G8B8A8_UNORM,
FORMAT_R8G8B8A8_SNORM,
FORMAT_B8G8R8A8_UNORM,
FORMAT_B8G8R8A8_SNORM,
FORMAT_A8B8G8R8_UNORM_PACK32,
FORMAT_A8B8G8R8_SNORM_PACK32,
FORMAT_A2R10G10B10_UNORM_PACK32,
FORMAT_A2B10G10R10_UNORM_PACK32,
FORMAT_R16_UNORM,
FORMAT_R16_SNORM,
FORMAT_R16_SFLOAT,
FORMAT_R16G16_UNORM,
FORMAT_R16G16_SNORM,
FORMAT_R16G16_SFLOAT,
FORMAT_R16G16B16A16_UNORM,
FORMAT_R16G16B16A16_SNORM,
FORMAT_R16G16B16A16_SFLOAT,
FORMAT_R32_SFLOAT,
FORMAT_R32G32_SFLOAT,
FORMAT_R32G32B32A32_SFLOAT,
FORMAT_B10G11R11_UFLOAT_PACK32:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
FORMAT_R8_USCALED,
FORMAT_R8_SSCALED,
FORMAT_R8G8_USCALED,
FORMAT_R8G8_SSCALED,
FORMAT_R8G8B8A8_USCALED,
FORMAT_R8G8B8A8_SSCALED,
FORMAT_B8G8R8A8_USCALED,
FORMAT_B8G8R8A8_SSCALED,
FORMAT_A8B8G8R8_USCALED_PACK32,
FORMAT_A8B8G8R8_SSCALED_PACK32,
FORMAT_A2R10G10B10_USCALED_PACK32,
FORMAT_A2B10G10R10_USCALED_PACK32,
FORMAT_R16_USCALED,
FORMAT_R16_SSCALED,
FORMAT_R16G16_USCALED,
FORMAT_R16G16_SSCALED,
FORMAT_R16G16B16A16_USCALED,
FORMAT_R16G16B16A16_SSCALED:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
FORMAT_R8_UINT,
FORMAT_R8_SINT,
FORMAT_R8G8_UINT,
FORMAT_R8G8_SINT,
FORMAT_R16_UINT,
FORMAT_R16_SINT,
FORMAT_R32G32_UINT,
FORMAT_R32G32_SINT,
FORMAT_R32G32B32A32_UINT,
FORMAT_R32G32B32A32_SINT:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
FORMAT_R8_SRGB,
FORMAT_R8G8_SRGB,
FORMAT_R8G8B8A8_SRGB,
FORMAT_B8G8R8A8_SRGB,
FORMAT_A8B8G8R8_SRGB_PACK32:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
None
FORMAT_R8G8B8A8_UINT,
FORMAT_R8G8B8A8_SINT,
FORMAT_B8G8R8A8_UINT,
FORMAT_B8G8R8A8_SINT,
FORMAT_A8B8G8R8_UINT_PACK32,
FORMAT_A8B8G8R8_SINT_PACK32,
FORMAT_A2R10G10B10_UINT_PACK32,
FORMAT_A2B10G10R10_UINT_PACK32,
FORMAT_R16G16_UINT,
FORMAT_R16G16_SINT,
FORMAT_R16G16B16A16_UINT,
FORMAT_R16G16B16A16_SINT,
FORMAT_R32_UINT,
FORMAT_R32_SINT:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
FORMAT_A2R10G10B10_SNORM_PACK32,
FORMAT_A2R10G10B10_SSCALED_PACK32,
FORMAT_A2R10G10B10_SINT_PACK32,
FORMAT_A2B10G10R10_SNORM_PACK32,
FORMAT_A2B10G10R10_SSCALED_PACK32,
FORMAT_A2B10G10R10_SINT_PACK32,
FORMAT_R64_UINT,
FORMAT_R64_SINT,
FORMAT_R64_SFLOAT,
FORMAT_R64G64_UINT,
FORMAT_R64G64_SINT,
FORMAT_R64G64_SFLOAT,
FORMAT_R64G64B64_UINT,
FORMAT_R64G64B64_SINT,
FORMAT_R64G64B64_SFLOAT,
FORMAT_R64G64B64A64_UINT,
FORMAT_R64G64B64A64_SINT,
FORMAT_R64G64B64A64_SFLOAT:
linearTiling FormatFeatureFlags:
None
optimalTiling FormatFeatureFlags:
None
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
FORMAT_R32G32B32_UINT,
FORMAT_R32G32B32_SINT:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
None
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
FORMAT_R32G32B32_SFLOAT:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
None
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
FORMAT_D16_UNORM,
FORMAT_D32_SFLOAT:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
FORMAT_S8_UINT:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_BLIT_DST_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
FORMAT_D16_UNORM_S8_UINT,
FORMAT_D32_SFLOAT_S8_UINT:
linearTiling FormatFeatureFlags:
None
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
None
FORMAT_BC1_RGB_UNORM_BLOCK,
FORMAT_BC1_RGB_SRGB_BLOCK,
FORMAT_BC1_RGBA_UNORM_BLOCK,
FORMAT_BC1_RGBA_SRGB_BLOCK,
FORMAT_BC2_UNORM_BLOCK,
FORMAT_BC2_SRGB_BLOCK,
FORMAT_BC3_UNORM_BLOCK,
FORMAT_BC3_SRGB_BLOCK,
FORMAT_BC4_UNORM_BLOCK,
FORMAT_BC4_SNORM_BLOCK,
FORMAT_BC5_UNORM_BLOCK,
FORMAT_BC5_SNORM_BLOCK,
FORMAT_BC6H_UFLOAT_BLOCK,
FORMAT_BC6H_SFLOAT_BLOCK,
FORMAT_BC7_UNORM_BLOCK,
FORMAT_BC7_SRGB_BLOCK:
linearTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
optimalTiling FormatFeatureFlags:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
VK_FORMAT_FEATURE_BLIT_SRC_BIT
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR
bufferFeatures FormatFeatureFlags:
None
Unsupported formats:
FORMAT_UNDEFINED
FORMAT_R8G8B8_UNORM
FORMAT_R8G8B8_SNORM
FORMAT_R8G8B8_USCALED
FORMAT_R8G8B8_SSCALED
FORMAT_R8G8B8_UINT
FORMAT_R8G8B8_SINT
FORMAT_R8G8B8_SRGB
FORMAT_B8G8R8_UNORM
FORMAT_B8G8R8_SNORM
FORMAT_B8G8R8_USCALED
FORMAT_B8G8R8_SSCALED
FORMAT_B8G8R8_UINT
FORMAT_B8G8R8_SINT
FORMAT_B8G8R8_SRGB
FORMAT_R16G16B16_UNORM
FORMAT_R16G16B16_SNORM
FORMAT_R16G16B16_USCALED
FORMAT_R16G16B16_SSCALED
FORMAT_R16G16B16_UINT
FORMAT_R16G16B16_SINT
FORMAT_R16G16B16_SFLOAT
FORMAT_X8_D24_UNORM_PACK32
FORMAT_D24_UNORM_S8_UINT
FORMAT_ETC2_R8G8B8_UNORM_BLOCK
FORMAT_ETC2_R8G8B8_SRGB_BLOCK
FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
FORMAT_EAC_R11_UNORM_BLOCK
FORMAT_EAC_R11_SNORM_BLOCK
FORMAT_EAC_R11G11_UNORM_BLOCK
FORMAT_EAC_R11G11_SNORM_BLOCK
FORMAT_ASTC_4x4_UNORM_BLOCK
FORMAT_ASTC_4x4_SRGB_BLOCK
FORMAT_ASTC_5x4_UNORM_BLOCK
FORMAT_ASTC_5x4_SRGB_BLOCK
FORMAT_ASTC_5x5_UNORM_BLOCK
FORMAT_ASTC_5x5_SRGB_BLOCK
FORMAT_ASTC_6x5_UNORM_BLOCK
FORMAT_ASTC_6x5_SRGB_BLOCK
FORMAT_ASTC_6x6_UNORM_BLOCK
FORMAT_ASTC_6x6_SRGB_BLOCK
FORMAT_ASTC_8x5_UNORM_BLOCK
FORMAT_ASTC_8x5_SRGB_BLOCK
FORMAT_ASTC_8x6_UNORM_BLOCK
FORMAT_ASTC_8x6_SRGB_BLOCK
FORMAT_ASTC_8x8_UNORM_BLOCK
FORMAT_ASTC_8x8_SRGB_BLOCK
FORMAT_ASTC_10x5_UNORM_BLOCK
FORMAT_ASTC_10x5_SRGB_BLOCK
FORMAT_ASTC_10x6_UNORM_BLOCK
FORMAT_ASTC_10x6_SRGB_BLOCK
FORMAT_ASTC_10x8_UNORM_BLOCK
FORMAT_ASTC_10x8_SRGB_BLOCK
FORMAT_ASTC_10x10_UNORM_BLOCK
FORMAT_ASTC_10x10_SRGB_BLOCK
FORMAT_ASTC_12x10_UNORM_BLOCK
FORMAT_ASTC_12x10_SRGB_BLOCK
FORMAT_ASTC_12x12_UNORM_BLOCK
FORMAT_ASTC_12x12_SRGB_BLOCK
FORMAT_G8B8G8R8_422_UNORM
FORMAT_B8G8R8G8_422_UNORM
FORMAT_G8_B8_R8_3PLANE_420_UNORM
FORMAT_G8_B8R8_2PLANE_420_UNORM
FORMAT_G8_B8_R8_3PLANE_422_UNORM
FORMAT_G8_B8R8_2PLANE_422_UNORM
FORMAT_G8_B8_R8_3PLANE_444_UNORM
FORMAT_R10X6_UNORM_PACK16
FORMAT_R10X6G10X6_UNORM_2PACK16
FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
FORMAT_R12X4_UNORM_PACK16
FORMAT_R12X4G12X4_UNORM_2PACK16
FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16
FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16
FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16
FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16
FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
FORMAT_G16B16G16R16_422_UNORM
FORMAT_B16G16R16G16_422_UNORM
FORMAT_G16_B16_R16_3PLANE_420_UNORM
FORMAT_G16_B16R16_2PLANE_420_UNORM
FORMAT_G16_B16_R16_3PLANE_422_UNORM
FORMAT_G16_B16R16_2PLANE_422_UNORM
FORMAT_G16_B16_R16_3PLANE_444_UNORM
However, mpv (git master) is still giving me 8 bit outputs, with --gpu-api=vulkan --fs --ontop. Any ideas?
Full log here
[ 0.003][v][cplayer] mpv 0.29.0-353-g65b1c2d065 Copyright © 2000-2019 mpv/MPlayer/mplayer2 projects
[ 0.003][v][cplayer] built on Sun Jul 14 20:16:49 +08 2019
[ 0.003][v][cplayer] ffmpeg library versions:
[ 0.003][v][cplayer] libavutil 56.30.100
[ 0.003][v][cplayer] libavcodec 58.53.101
[ 0.003][v][cplayer] libavformat 58.28.102
[ 0.003][v][cplayer] libswscale 5.4.101
[ 0.003][v][cplayer] libavfilter 7.56.101
[ 0.003][v][cplayer] libswresample 3.4.100
[ 0.003][v][cplayer] ffmpeg version: git-2019-07-13-f86f213a
[ 0.003][v][cplayer]
[ 0.003][v][cplayer] Configuration: /home/shinchiro/build/build64/packages/mpv-prefix/src/mpv/waf configure --enable-static-build --enable-pdf-build --disable-manpage-build --enable-libmpv-shared --enable-lua --enable-javascript --enable-libarchive --enable-libass --enable-libbluray --enable-dvdread --enable-dvdnav --enable-uchardet --enable-rubberband --enable-lcms2 --enable-openal --enable-spirv-cross --enable-vulkan --enable-vapoursynth --prefix=/home/shinchiro/build/build64/install/mingw
[ 0.255][v][cplayer] List of enabled features: asm atomics build-date cplayer cuda-hwaccel d3d-hwaccel d3d11 d3d9-hwaccel debug-build direct3d dos-paths drmprime dvdnav dvdread dvdread-common egl-angle egl-angle-win32 egl-helpers ffmpeg ffnvcodec gl gl-dxinterop gl-dxinterop-d3d9 gl-win32 glob glob-win32 gnuc gpl iconv javascript jpeg lcms2 libaf libarchive libass libass-osd libav-any libavcodec libavdevice libbluray libm libmpv-shared libplacebo lua luajit mingw noexecstack openal optimize plain-gl posix-or-mingw rubberband shaderc shaderc-static spirv-cross spirv-cross-static static-build stdatomic uchardet vapoursynth vapoursynth-core vapoursynth-lazy vulkan wasapi win32-desktop win32-internal-pthreads win32-pipes zlib
[ 0.256][v][cplayer] Command line options: '.\Spears_Munsil_Quantazation_Test_2160p.mp4' '--no-config' '--screen=1' '--fs' '--fs-screen=1' '--gpu-api=vulkan' '--ontop' '--log-file=vulkan.log'
[ 0.256][v][cplayer] mpv 0.29.0-353-g65b1c2d065 Copyright © 2000-2019 mpv/MPlayer/mplayer2 projects
[ 0.256][v][cplayer] built on Sun Jul 14 20:16:49 +08 2019
[ 0.256][v][cplayer] ffmpeg library versions:
[ 0.256][v][cplayer] libavutil 56.30.100
[ 0.256][v][cplayer] libavcodec 58.53.101
[ 0.256][v][cplayer] libavformat 58.28.102
[ 0.256][v][cplayer] libswscale 5.4.101
[ 0.256][v][cplayer] libavfilter 7.56.101
[ 0.256][v][cplayer] libswresample 3.4.100
[ 0.256][v][cplayer] ffmpeg version: git-2019-07-13-f86f213a
[ 0.256][v][cplayer]
[ 0.256][v][cplayer] Configuration: /home/shinchiro/build/build64/packages/mpv-prefix/src/mpv/waf configure --enable-static-build --enable-pdf-build --disable-manpage-build --enable-libmpv-shared --enable-lua --enable-javascript --enable-libarchive --enable-libass --enable-libbluray --enable-dvdread --enable-dvdnav --enable-uchardet --enable-rubberband --enable-lcms2 --enable-openal --enable-spirv-cross --enable-vulkan --enable-vapoursynth --prefix=/home/shinchiro/build/build64/install/mingw
[ 0.256][v][cplayer] List of enabled features: asm atomics build-date cplayer cuda-hwaccel d3d-hwaccel d3d11 d3d9-hwaccel debug-build direct3d dos-paths drmprime dvdnav dvdread dvdread-common egl-angle egl-angle-win32 egl-helpers ffmpeg ffnvcodec gl gl-dxinterop gl-dxinterop-d3d9 gl-win32 glob glob-win32 gnuc gpl iconv javascript jpeg lcms2 libaf libarchive libass libass-osd libav-any libavcodec libavdevice libbluray libm libmpv-shared libplacebo lua luajit mingw noexecstack openal optimize plain-gl posix-or-mingw rubberband shaderc shaderc-static spirv-cross spirv-cross-static static-build stdatomic uchardet vapoursynth vapoursynth-core vapoursynth-lazy vulkan wasapi win32-desktop win32-internal-pthreads win32-pipes zlib
[ 0.256][d][cplayer] Setting option 'config' = 'no' (flags = 8)
[ 0.257][d][cplayer] Setting option 'screen' = '1' (flags = 8)
[ 0.257][d][cplayer] Setting option 'fs' = '' (flags = 8)
[ 0.257][d][cplayer] Setting option 'fs-screen' = '1' (flags = 8)
[ 0.262][d][cplayer] Setting option 'gpu-api' = 'vulkan' (flags = 8)
[ 0.262][d][cplayer] Setting option 'ontop' = '' (flags = 8)
[ 0.262][d][cplayer] Setting option 'log-file' = 'vulkan.log' (flags = 8)
[ 0.267][d][global] user path: 'vulkan.log' -> 'vulkan.log'
[ 0.267][d][osc] Loading lua script @osc.lua...
[ 0.267][d][ytdl_hook] Loading lua script @ytdl_hook.lua...
[ 0.267][d][stats] Loading lua script @stats.lua...
[ 0.268][v][cplayer] Waiting for scripts...
[ 0.268][d][osc] loading mp.defaults
[ 0.268][d][stats] loading mp.defaults
[ 0.268][d][ytdl_hook] loading mp.defaults
[ 0.270][d][osc] loading @osc.lua
[ 0.270][d][stats] loading @stats.lua
[ 0.270][d][ytdl_hook] loading @ytdl_hook.lua
[ 0.272][d][ytdl_hook] reading options for ytdl_hook
[ 0.272][v][ytdl_hook] script-opts/ytdl_hook.conf not found.
[ 0.272][v][ytdl_hook] lua-settings/ytdl_hook.conf not found.
[ 0.273][d][stats] reading options for stats
[ 0.273][v][stats] script-opts/stats.conf not found.
[ 0.273][v][stats] lua-settings/stats.conf not found.
[ 0.276][d][cplayer] Run command: define-section, flags=64, args=[input_stats, i script-binding stats/display-stats
[ 0.276][d][cplayer] , default]
[ 0.276][d][cplayer] Run command: enable-section, flags=64, args=[input_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.276][d][cplayer] Run command: define-section, flags=64, args=[input_forced_stats, , force]
[ 0.276][d][cplayer] Run command: enable-section, flags=64, args=[input_forced_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.276][d][cplayer] Run command: define-section, flags=64, args=[input_stats, I script-binding stats/display-stats-toggle
[ 0.276][d][cplayer] i script-binding stats/display-stats
[ 0.277][d][cplayer] , default]
[ 0.277][d][osc] reading options for osc
[ 0.277][v][osc] script-opts/osc.conf not found.
[ 0.277][v][osc] lua-settings/osc.conf not found.
[ 0.277][d][cplayer] Run command: enable-section, flags=64, args=[input_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.277][d][cplayer] Run command: define-section, flags=64, args=[input_forced_stats, , force]
[ 0.277][d][cplayer] Run command: enable-section, flags=64, args=[input_forced_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.277][d][cplayer] Run command: define-section, flags=64, args=[input_stats, i script-binding stats/display-stats
[ 0.277][d][cplayer] I script-binding stats/display-stats-toggle
[ 0.277][d][cplayer] , default]
[ 0.277][d][cplayer] Run command: enable-section, flags=64, args=[input_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.277][d][cplayer] Run command: define-section, flags=64, args=[input_forced_stats, , force]
[ 0.277][d][cplayer] Run command: enable-section, flags=64, args=[input_forced_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.277][d][cplayer] Run command: define-section, flags=64, args=[input_stats, i script-binding stats/display-stats
[ 0.277][d][cplayer] I script-binding stats/display-stats-toggle
[ 0.277][d][cplayer] , default]
[ 0.278][d][cplayer] Run command: enable-section, flags=64, args=[input_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.278][d][cplayer] Run command: define-section, flags=64, args=[input_forced_stats, , force]
[ 0.278][d][cplayer] Run command: enable-section, flags=64, args=[input_forced_stats, allow-hide-cursor+allow-vo-dragging]
[ 0.279][d][cplayer] Run command: define-section, flags=64, args=[showhide, mouse_move script-binding osc/__keybinding1
[ 0.279][d][cplayer] mouse_leave script-binding osc/__keybinding2
[ 0.279][d][cplayer] , force]
[ 0.279][d][cplayer] Run command: enable-section, flags=64, args=[showhide, allow-hide-cursor+allow-vo-dragging]
[ 0.279][d][cplayer] Run command: define-section, flags=64, args=[input, mbtn_left script-binding osc/__keybinding3
[ 0.279][d][cplayer] shift+mbtn_left script-binding osc/__keybinding4
[ 0.279][d][cplayer] mbtn_right script-binding osc/__keybinding5
[ 0.279][d][cplayer] wheel_up script-binding osc/__keybinding6
[ 0.279][d][cplayer] wheel_down script-binding osc/__keybinding7
[ 0.325][d][cplayer] mbtn_left_dbl ignore
[ 0.325][d][cplayer] shift+mbtn_left_dbl ignore
[ 0.325][d][cplayer] mbtn_right_dbl ignore
[ 0.325][d][cplayer] , force]
[ 0.325][d][cplayer] Run command: enable-section, flags=64, args=[input, ]
[ 0.325][d][cplayer] Run command: define-section, flags=64, args=[input_osc, , default]
[ 0.325][d][cplayer] Run command: enable-section, flags=64, args=[input_osc, allow-hide-cursor+allow-vo-dragging]
[ 0.325][d][cplayer] Run command: define-section, flags=64, args=[input_forced_osc, , force]
[ 0.325][d][cplayer] Run command: enable-section, flags=64, args=[input_forced_osc, allow-hide-cursor+allow-vo-dragging]
[ 0.326][v][cplayer] Done loading scripts.
[ 0.326][d][global] config path: 'watch_later' -> '-'
[ 0.326][d][global] config path: 'watch_later' -> '-'
[ 0.328][i][cplayer] Playing: .\Spears_Munsil_Quantazation_Test_2160p.mp4
[ 0.328][v][cplayer] Running hook: ytdl_hook/on_load
[ 0.328][v][ytdl_hook] ytdl:// hook
[ 0.328][v][ytdl_hook] not a ytdl:// url
[ 0.328][d][osc] osc_init
[ 0.329][v][ifo] Opening .\Spears_Munsil_Quantazation_Test_2160p.mp4
[ 0.330][v][ifo_dvdnav] Opening .\Spears_Munsil_Quantazation_Test_2160p.mp4
[ 0.330][d][cplayer] Run command: disable-section, flags=64, args=[input]
[ 0.330][v][bdmv/bluray] Opening .\Spears_Munsil_Quantazation_Test_2160p.mp4
[ 0.331][v][file] Opening .\Spears_Munsil_Quantazation_Test_2160p.mp4
[ 0.331][d][file] Stream opened successfully.
[ 0.331][v][demux] Trying demuxers for level=normal.
[ 0.331][d][demux] Trying demuxer: disc (force-level: normal)
[ 0.331][d][demux] Trying demuxer: edl (force-level: normal)
[ 0.331][d][demux] Trying demuxer: cue (force-level: normal)
[ 0.331][d][demux] Trying demuxer: rawaudio (force-level: normal)
[ 0.331][d][demux] Trying demuxer: rawvideo (force-level: normal)
[ 0.331][d][demux] Trying demuxer: mkv (force-level: normal)
[ 0.332][d][demux] Trying demuxer: libarchive (force-level: normal)
[ 0.332][d][demux] Trying demuxer: rar (force-level: normal)
[ 0.332][d][demux] Trying demuxer: lavf (force-level: normal)
[ 0.335][v][osd/libass] Shaper: FriBidi 1.0.5 (SIMPLE) HarfBuzz-ng 2.5.3 (COMPLEX)
[ 0.335][v][osd/libass] Setting up fonts...
[ 0.337][v][lavf] Found 'mov,mp4,m4a,3gp,3g2,mj2' at score=100 size=2048.
[ 0.341][v][demux] Detected file format: mov,mp4,m4a,3gp,3g2,mj2 (libavformat)
[ 0.341][v][cplayer] Opening done: .\Spears_Munsil_Quantazation_Test_2160p.mp4
[ 0.342][v][find_files] Loading external files in .\
[ 0.345][v][cplayer] Running hook: ytdl_hook/on_preloaded
[ 0.345][v][lavf] select track 0
[ 0.345][v][lavf] select track 1
[ 0.347][i][cplayer] (+) Video --vid=1 (*) (hevc 3840x2160 23.976fps)
[ 0.349][i][cplayer] (+) Audio --aid=1 (*) (aac 2ch 44100Hz)
[ 0.350][v][vo/gpu] Probing for best GPU context.
[ 0.350][v][vo/gpu/vulkan] Initializing GPU context 'winvk'
[ 0.369][v][osd/libass] Using font provider directwrite
[ 0.369][v][osd/libass] Done.
[ 0.373][v][vo/gpu/vulkan/libplacebo] Creating vulkan instance with extensions:
[ 0.373][v][vo/gpu/vulkan/libplacebo] VK_KHR_get_physical_device_properties2
[ 0.373][v][vo/gpu/vulkan/libplacebo] VK_EXT_swapchain_colorspace
[ 0.373][v][vo/gpu/vulkan/libplacebo] VK_KHR_external_memory_capabilities
[ 0.373][v][vo/gpu/vulkan/libplacebo] VK_KHR_external_semaphore_capabilities
[ 0.373][v][vo/gpu/vulkan/libplacebo] VK_KHR_surface
[ 0.373][v][vo/gpu/vulkan/libplacebo] VK_KHR_win32_surface
[ 0.423][v][vo/gpu/vulkan/libplacebo] Probing for vulkan devices:
[ 0.423][v][vo/gpu/vulkan/libplacebo] GPU 0: AMD Radeon RX 5700 XT (discrete)
[ 0.423][v][vo/gpu/vulkan/libplacebo] Vulkan device properties:
[ 0.423][v][vo/gpu/vulkan/libplacebo] Device Name: AMD Radeon RX 5700 XT
[ 0.423][v][vo/gpu/vulkan/libplacebo] Device ID: 1002:731f
[ 0.423][v][vo/gpu/vulkan/libplacebo] Driver version: 8388707
[ 0.423][v][vo/gpu/vulkan/libplacebo] API version: 1.1.113
[ 0.423][v][vo/gpu/vulkan/libplacebo] Queue families supported by device:
[ 0.423][v][vo/gpu/vulkan/libplacebo] QF 0: flags 0xf num 1
[ 0.423][v][vo/gpu/vulkan/libplacebo] QF 1: flags 0xe num 2
[ 0.423][v][vo/gpu/vulkan/libplacebo] QF 2: flags 0xc num 2
[ 0.423][v][vo/gpu/vulkan/libplacebo] Using graphics queue (QF 0)
[ 0.423][v][vo/gpu/vulkan/libplacebo] Using async transfer (QF 2)
[ 0.423][v][vo/gpu/vulkan/libplacebo] Using async compute (QF 1)
[ 0.424][v][vo/gpu/vulkan/libplacebo] Creating vulkan device with extensions:
[ 0.424][v][vo/gpu/vulkan/libplacebo] VK_KHR_swapchain
[ 0.424][v][vo/gpu/vulkan/libplacebo] VK_KHR_external_memory
[ 0.424][v][vo/gpu/vulkan/libplacebo] VK_KHR_external_memory_win32
[ 0.424][v][vo/gpu/vulkan/libplacebo] VK_KHR_external_semaphore
[ 0.424][v][vo/gpu/vulkan/libplacebo] VK_KHR_external_semaphore_win32
[ 0.437][v][vo/gpu/vulkan/libplacebo] Initializing SPIR-V compiler 'shaderc'
[ 0.437][v][vo/gpu/vulkan/libplacebo] Memory heaps supported by device:
[ 0.437][v][vo/gpu/vulkan/libplacebo] heap 0: flags 0x3 size 8304721920
[ 0.437][v][vo/gpu/vulkan/libplacebo] heap 1: flags 0x0 size 8295284736
[ 0.437][v][vo/gpu/vulkan/libplacebo] heap 2: flags 0x3 size 268435456
[ 0.437][v][vo/gpu/vulkan/libplacebo] Memory types supported by device:
[ 0.437][v][vo/gpu/vulkan/libplacebo] type 0: flags 0x1 heap 0
[ 0.437][v][vo/gpu/vulkan/libplacebo] type 1: flags 0x6 heap 1
[ 0.437][v][vo/gpu/vulkan/libplacebo] type 2: flags 0x7 heap 2
[ 0.437][v][vo/gpu/vulkan/libplacebo] type 3: flags 0xe heap 1
[ 0.437][w][vo/gpu/vulkan/libplacebo] Storable format 'rgb32f' has no matching GLSL format qualifier?
[ 0.438][w][vo/gpu/vulkan/libplacebo] Storable format 'rgb32u' has no matching GLSL format qualifier?
[ 0.438][w][vo/gpu/vulkan/libplacebo] Storable format 'rgb32i' has no matching GLSL format qualifier?
[ 0.438][w][vo/gpu/vulkan/libplacebo] Storable format 'bgra4' has no matching GLSL format qualifier?
[ 0.439][w][vo/gpu/vulkan/libplacebo] Storable format 'bgr565' has no matching GLSL format qualifier?
[ 0.439][w][vo/gpu/vulkan/libplacebo] Storable format 'bgr5a1' has no matching GLSL format qualifier?
[ 0.440][w][vo/gpu/vulkan/libplacebo] Storable format 'a1rgb5' has no matching GLSL format qualifier?
[ 0.440][w][vo/gpu/vulkan/libplacebo] Storable format 'rgba4' has no matching GLSL format qualifier?
[ 0.441][w][vo/gpu/vulkan/libplacebo] Storable format 'rgb565' has no matching GLSL format qualifier?
[ 0.441][w][vo/gpu/vulkan/libplacebo] Storable format 'rgb5a1' has no matching GLSL format qualifier?
[ 0.441][d][vo/gpu/vulkan/libplacebo] Minimum texel alignment: 96
[ 0.441][v][vo/gpu/vulkan/libplacebo] GPU information:
[ 0.441][v][vo/gpu/vulkan/libplacebo] GLSL version: 450 (vulkan)
[ 0.441][v][vo/gpu/vulkan/libplacebo] Capabilities: 0x1
[ 0.441][v][vo/gpu/vulkan/libplacebo] Limits:
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_tex_1d_dim: 16384
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_tex_2d_dim: 16384
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_tex_3d_dim: 2048
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_pushc_size: 128
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_xfer_size: 18446744073709551615
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_ubo_size: 4294967295
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_ssbo_size: 4294967295
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_buffer_texels: 4294967295
[ 0.441][v][vo/gpu/vulkan/libplacebo] min_gather_offset: -32
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_gather_offset: 31
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_shmem_size: 32768
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_group_threads: 1024
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_group_size[0]: 1024
[ 0.441][v][vo/gpu/vulkan/libplacebo] max_group_size[1]: 1024
[ 0.462][v][vo/gpu/vulkan/libplacebo] max_group_size[2]: 1024
[ 0.462][v][vo/gpu/vulkan/libplacebo] max_dispatch[0]: 65535
[ 0.462][v][vo/gpu/vulkan/libplacebo] max_dispatch[1]: 65535
[ 0.462][v][vo/gpu/vulkan/libplacebo] max_dispatch[2]: 65535
[ 0.462][v][vo/gpu/vulkan/libplacebo] align_tex_xfer_stride: 1
[ 0.462][v][vo/gpu/vulkan/libplacebo] align_tex_xfer_offset: 4
[ 0.462][v][vo/gpu/vulkan/libplacebo] External API interop:
[ 0.462][v][vo/gpu/vulkan/libplacebo] UUID: 03:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
[ 0.462][v][vo/gpu/vulkan/libplacebo] buf export caps: 0x0
[ 0.462][v][vo/gpu/vulkan/libplacebo] buf import caps: 0x0
[ 0.462][v][vo/gpu/vulkan/libplacebo] tex export caps: 0x0
[ 0.462][v][vo/gpu/vulkan/libplacebo] tex import caps: 0x0
[ 0.462][v][vo/gpu/vulkan/libplacebo] sync export caps: 0x6
[ 0.462][v][vo/gpu/vulkan/libplacebo] sync import caps: 0x0
[ 0.462][d][vo/gpu/vulkan/libplacebo] GPU texture formats:
[ 0.462][d][vo/gpu/vulkan/libplacebo] NAME TYPE CAPS SIZE COMP DEPTH BITS GLSL_TYPE GLSL_FMT
[ 0.462][d][vo/gpu/vulkan/libplacebo] a2rgb10 UNORM 0x1ff 4 ARGB {2 10 10 10} {2 10 10 10} vec4 rgb10_a2
[ 0.462][d][vo/gpu/vulkan/libplacebo] a2bgr10 UNORM 0x1ff 4 ABGR {2 10 10 10} {2 10 10 10} vec4 rgb10_a2
[ 0.462][d][vo/gpu/vulkan/libplacebo] r8 UNORM 0x1ff 1 R {8 0 0 0 } {8 0 0 0 } float r8
[ 0.462][d][vo/gpu/vulkan/libplacebo] r8s SNORM 0x1ff 1 R {8 0 0 0 } {8 0 0 0 } float r8_snorm
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg8 UNORM 0x1ff 2 RG {8 8 0 0 } {8 8 0 0 } vec2 rg8
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg8s SNORM 0x1ff 2 RG {8 8 0 0 } {8 8 0 0 } vec2 rg8_snorm
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba8 UNORM 0x1ff 4 RGBA {8 8 8 8 } {8 8 8 8 } vec4 rgba8
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba8s SNORM 0x1ff 4 RGBA {8 8 8 8 } {8 8 8 8 } vec4 rgba8_snorm
[ 0.462][d][vo/gpu/vulkan/libplacebo] bgra8 UNORM 0x1ff 4 BGRA {8 8 8 8 } {8 8 8 8 } vec4 rgba8
[ 0.462][d][vo/gpu/vulkan/libplacebo] abgr8 UNORM 0x1ff 4 ABGR {8 8 8 8 } {8 8 8 8 } vec4 rgba8
[ 0.462][d][vo/gpu/vulkan/libplacebo] abgr8s SNORM 0x1ff 4 ABGR {8 8 8 8 } {8 8 8 8 } vec4 rgba8_snorm
[ 0.462][d][vo/gpu/vulkan/libplacebo] r16 UNORM 0x1ff 2 R {16 0 0 0 } {16 0 0 0 } float r16
[ 0.462][d][vo/gpu/vulkan/libplacebo] r16hf FLOAT 0x1ff 2 R {16 0 0 0 } {16 0 0 0 } float r16f
[ 0.462][d][vo/gpu/vulkan/libplacebo] r16s SNORM 0x1ff 2 R {16 0 0 0 } {16 0 0 0 } float r16_snorm
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg16 UNORM 0x1ff 4 RG {16 16 0 0 } {16 16 0 0 } vec2 rg16
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg16hf FLOAT 0x1ff 4 RG {16 16 0 0 } {16 16 0 0 } vec2 rg16f
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg16s SNORM 0x1ff 4 RG {16 16 0 0 } {16 16 0 0 } vec2 rg16_snorm
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba16 UNORM 0x1ff 8 RGBA {16 16 16 16} {16 16 16 16} vec4 rgba16
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba16hf FLOAT 0x1ff 8 RGBA {16 16 16 16} {16 16 16 16} vec4 rgba16f
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba16s SNORM 0x1ff 8 RGBA {16 16 16 16} {16 16 16 16} vec4 rgba16_snorm
[ 0.462][d][vo/gpu/vulkan/libplacebo] r32f FLOAT 0x1ff 4 R {32 0 0 0 } {32 0 0 0 } float r32f
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg32f FLOAT 0x1ff 8 RG {32 32 0 0 } {32 32 0 0 } vec2 rg32f
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba32f FLOAT 0x1ff 16 RGBA {32 32 32 32} {32 32 32 32} vec4 rgba32f
[ 0.462][d][vo/gpu/vulkan/libplacebo] a2rgb10u UINT 0x1eb 4 ARGB {2 10 10 10} {2 10 10 10} uvec4 rgb10_a2ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] a2bgr10u UINT 0x1eb 4 ABGR {2 10 10 10} {2 10 10 10} uvec4 rgb10_a2ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] r8i SINT 0x1eb 1 R {8 0 0 0 } {8 0 0 0 } int r8i
[ 0.462][d][vo/gpu/vulkan/libplacebo] r8u UINT 0x1eb 1 R {8 0 0 0 } {8 0 0 0 } uint r8ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg8i SINT 0x1eb 2 RG {8 8 0 0 } {8 8 0 0 } ivec2 rg8i
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg8u UINT 0x1eb 2 RG {8 8 0 0 } {8 8 0 0 } uvec2 rg8ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba8i SINT 0x1eb 4 RGBA {8 8 8 8 } {8 8 8 8 } ivec4 rgba8i
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba8u UINT 0x1eb 4 RGBA {8 8 8 8 } {8 8 8 8 } uvec4 rgba8ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] bgra8i SINT 0x1eb 4 BGRA {8 8 8 8 } {8 8 8 8 } ivec4 rgba8i
[ 0.462][d][vo/gpu/vulkan/libplacebo] bgra8u UINT 0x1eb 4 BGRA {8 8 8 8 } {8 8 8 8 } uvec4 rgba8ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] abgr8i SINT 0x1eb 4 ABGR {8 8 8 8 } {8 8 8 8 } ivec4 rgba8i
[ 0.462][d][vo/gpu/vulkan/libplacebo] abgr8u UINT 0x1eb 4 ABGR {8 8 8 8 } {8 8 8 8 } uvec4 rgba8ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] r16i SINT 0x1eb 2 R {16 0 0 0 } {16 0 0 0 } int r16i
[ 0.462][d][vo/gpu/vulkan/libplacebo] r16u UINT 0x1eb 2 R {16 0 0 0 } {16 0 0 0 } uint r16ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg16i SINT 0x1eb 4 RG {16 16 0 0 } {16 16 0 0 } ivec2 rg16i
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg16u UINT 0x1eb 4 RG {16 16 0 0 } {16 16 0 0 } uvec2 rg16ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba16i SINT 0x1eb 8 RGBA {16 16 16 16} {16 16 16 16} ivec4 rgba16i
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba16u UINT 0x1eb 8 RGBA {16 16 16 16} {16 16 16 16} uvec4 rgba16ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] r32i SINT 0x1eb 4 R {32 0 0 0 } {32 0 0 0 } int r32i
[ 0.462][d][vo/gpu/vulkan/libplacebo] r32u UINT 0x1eb 4 R {32 0 0 0 } {32 0 0 0 } uint r32ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg32i SINT 0x1eb 8 RG {32 32 0 0 } {32 32 0 0 } ivec2 rg32i
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg32u UINT 0x1eb 8 RG {32 32 0 0 } {32 32 0 0 } uvec2 rg32ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba32i SINT 0x1eb 16 RGBA {32 32 32 32} {32 32 32 32} ivec4 rgba32i
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba32u UINT 0x1eb 16 RGBA {32 32 32 32} {32 32 32 32} uvec4 rgba32ui
[ 0.462][d][vo/gpu/vulkan/libplacebo] a1rgb5 UNORM 0x3d 2 ARGB {1 5 5 5 } {1 5 5 5 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgba4 UNORM 0x3d 2 RGBA {4 4 4 4 } {4 4 4 4 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] bgra4 UNORM 0x3d 2 BGRA {4 4 4 4 } {4 4 4 4 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgb5a1 UNORM 0x3d 2 RGBA {5 5 5 1 } {5 5 5 1 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgb565 UNORM 0x3d 2 RGB {5 6 5 0 } {5 6 5 0 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] bgr5a1 UNORM 0x3d 2 BGRA {5 5 5 1 } {5 5 5 1 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] bgr565 UNORM 0x3d 2 BGR {5 6 5 0 } {5 6 5 0 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] rg4 UNORM 0x5 1 RG {4 4 0 0 } {4 4 0 0 }
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgb32f FLOAT 0xc0 12 RGB {32 32 32 0 } {32 32 32 0 } vec3
[ 0.462][d][vo/gpu/vulkan/libplacebo] rgb32i SINT 0xc0 12 RGB {32 32 32 0 } {32 32 32 0 } ivec3
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb32u UINT 0xc0 12 RGB {32 32 32 0 } {32 32 32 0 } uvec3
[ 0.463][d][vo/gpu/vulkan/libplacebo] a2rgb10i SINT 0x40 4 ARGB {2 10 10 10} {2 10 10 10} ivec4
[ 0.463][d][vo/gpu/vulkan/libplacebo] a2rgb10s SNORM 0x40 4 ARGB {2 10 10 10} {2 10 10 10} vec4
[ 0.463][d][vo/gpu/vulkan/libplacebo] a2bgr10i SINT 0x40 4 ABGR {2 10 10 10} {2 10 10 10} ivec4
[ 0.463][d][vo/gpu/vulkan/libplacebo] a2bgr10s SNORM 0x40 4 ABGR {2 10 10 10} {2 10 10 10} vec4
[ 0.463][d][vo/gpu/vulkan/libplacebo] r64df FLOAT 0x40 8 R {64 0 0 0 } {64 0 0 0 } float
[ 0.463][d][vo/gpu/vulkan/libplacebo] r64i SINT 0x40 8 R {64 0 0 0 } {64 0 0 0 } int
[ 0.463][d][vo/gpu/vulkan/libplacebo] r64u UINT 0x40 8 R {64 0 0 0 } {64 0 0 0 } uint
[ 0.463][d][vo/gpu/vulkan/libplacebo] rg64df FLOAT 0x40 16 RG {64 64 0 0 } {64 64 0 0 } vec2
[ 0.463][d][vo/gpu/vulkan/libplacebo] rg64i SINT 0x40 16 RG {64 64 0 0 } {64 64 0 0 } ivec2
[ 0.463][d][vo/gpu/vulkan/libplacebo] rg64u UINT 0x40 16 RG {64 64 0 0 } {64 64 0 0 } uvec2
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb64df FLOAT 0x40 24 RGB {64 64 64 0 } {64 64 64 0 } vec3
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb64i SINT 0x40 24 RGB {64 64 64 0 } {64 64 64 0 } ivec3
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb64u UINT 0x40 24 RGB {64 64 64 0 } {64 64 64 0 } uvec3
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgba64df FLOAT 0x40 32 RGBA {64 64 64 64} {64 64 64 64} vec4
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgba64i SINT 0x40 32 RGBA {64 64 64 64} {64 64 64 64} ivec4
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgba64u UINT 0x40 32 RGBA {64 64 64 64} {64 64 64 64} uvec4
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb8i SINT 0x0 3 RGB {8 8 8 0 } {8 8 8 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb8s SNORM 0x0 3 RGB {8 8 8 0 } {8 8 8 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb8u UINT 0x0 3 RGB {8 8 8 0 } {8 8 8 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] bgr8 UNORM 0x0 3 BGR {8 8 8 0 } {8 8 8 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] bgr8i SINT 0x0 3 BGR {8 8 8 0 } {8 8 8 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] bgr8u UINT 0x0 3 BGR {8 8 8 0 } {8 8 8 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb16hf FLOAT 0x0 6 RGB {16 16 16 0 } {16 16 16 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb16i SINT 0x0 6 RGB {16 16 16 0 } {16 16 16 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb16s SNORM 0x0 6 RGB {16 16 16 0 } {16 16 16 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb16u UINT 0x0 6 RGB {16 16 16 0 } {16 16 16 0 }
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb8 UNORM 0x3f 3 RGB {8 8 8 0 } {8 8 8 0 } rgba8
[ 0.463][d][vo/gpu/vulkan/libplacebo] rgb16 UNORM 0x3f 6 RGB {16 16 16 0 } {16 16 16 0 } rgba16
[ 0.463][d][vo/gpu/vulkan] Texture formats:
[ 0.463][d][vo/gpu/vulkan] NAME COMP*TYPE SIZE DEPTH PER COMP.
[ 0.463][d][vo/gpu/vulkan] a2rgb10 4*unorm 4B LF CR {2 10 10 10}
[ 0.463][d][vo/gpu/vulkan] a2bgr10 4*unorm 4B LF CR {2 10 10 10}
[ 0.463][d][vo/gpu/vulkan] r8 1*unorm 1B LF CR {8}
[ 0.463][d][vo/gpu/vulkan] rg8 2*unorm 2B LF CR {8 8}
[ 0.463][d][vo/gpu/vulkan] rgba8 4*unorm 4B LF CR {8 8 8 8}
[ 0.463][d][vo/gpu/vulkan] bgra8 4*unorm 4B LF CR {8 8 8 8}
[ 0.463][d][vo/gpu/vulkan] abgr8 4*unorm 4B LF CR {8 8 8 8}
[ 0.463][d][vo/gpu/vulkan] r16 1*unorm 2B LF CR {16}
[ 0.463][d][vo/gpu/vulkan] r16hf 1*float 2B LF CR {16}
[ 0.463][d][vo/gpu/vulkan] rg16 2*unorm 4B LF CR {16 16}
[ 0.463][d][vo/gpu/vulkan] rg16hf 2*float 4B LF CR {16 16}
[ 0.463][d][vo/gpu/vulkan] rgba16 4*unorm 8B LF CR {16 16 16 16}
[ 0.463][d][vo/gpu/vulkan] rgba16hf 4*float 8B LF CR {16 16 16 16}
[ 0.463][d][vo/gpu/vulkan] r32f 1*float 4B LF CR {32}
[ 0.463][d][vo/gpu/vulkan] rg32f 2*float 8B LF CR {32 32}
[ 0.463][d][vo/gpu/vulkan] rgba32f 4*float 16B LF CR {32 32 32 32}
[ 0.463][d][vo/gpu/vulkan] a2rgb10u 4*uint 4B CR {2 10 10 10}
[ 0.463][d][vo/gpu/vulkan] a2bgr10u 4*uint 4B CR {2 10 10 10}
[ 0.463][d][vo/gpu/vulkan] r8u 1*uint 1B CR {8}
[ 0.463][d][vo/gpu/vulkan] rg8u 2*uint 2B CR {8 8}
[ 0.463][d][vo/gpu/vulkan] rgba8u 4*uint 4B CR {8 8 8 8}
[ 0.463][d][vo/gpu/vulkan] bgra8u 4*uint 4B CR {8 8 8 8}
[ 0.463][d][vo/gpu/vulkan] abgr8u 4*uint 4B CR {8 8 8 8}
[ 0.463][d][vo/gpu/vulkan] r16u 1*uint 2B CR {16}
[ 0.463][d][vo/gpu/vulkan] rg16u 2*uint 4B CR {16 16}
[ 0.463][d][vo/gpu/vulkan] rgba16u 4*uint 8B CR {16 16 16 16}
[ 0.463][d][vo/gpu/vulkan] r32u 1*uint 4B CR {32}
[ 0.463][d][vo/gpu/vulkan] rg32u 2*uint 8B CR {32 32}
[ 0.463][d][vo/gpu/vulkan] rgba32u 4*uint 16B CR {32 32 32 32}
[ 0.463][d][vo/gpu/vulkan] a1rgb5 4*unorm 2B LF CR {1 5 5 5}
[ 0.463][d][vo/gpu/vulkan] rgba4 4*unorm 2B LF CR {4 4 4 4}
[ 0.463][d][vo/gpu/vulkan] bgra4 4*unorm 2B LF CR {4 4 4 4}
[ 0.463][d][vo/gpu/vulkan] rgb5a1 4*unorm 2B LF CR {5 5 5 1}
[ 0.463][d][vo/gpu/vulkan] rgb565 3*unorm 2B LF CR {5 6 5}
[ 0.463][d][vo/gpu/vulkan] bgr5a1 4*unorm 2B LF CR {5 5 5 1}
[ 0.464][d][vo/gpu/vulkan] bgr565 3*unorm 2B LF CR {5 6 5}
[ 0.464][d][vo/gpu/vulkan] rg4 2*unorm 1B LF {4 4}
[ 0.464][d][vo/gpu/vulkan] rgb8 3*unorm 3B LF CR {8 8 8}
[ 0.464][d][vo/gpu/vulkan] rgb16 3*unorm 6B LF CR {16 16 16}
[ 0.464][d][vo/gpu/vulkan] LA = LUMINANCE_ALPHA hack format
[ 0.464][d][vo/gpu/vulkan] LF = linear filterable
[ 0.464][d][vo/gpu/vulkan] CR = can be used for render targets
[ 0.464][d][vo/gpu/vulkan] Image formats:
[ 0.464][d][vo/gpu/vulkan] yuv444p => 3 planes 1x1 8/0 [r8/r8/r8] (r/g/b)
[ 0.464][d][vo/gpu/vulkan] yuv420p => 3 planes 2x2 8/0 [r8/r8/r8] (r/g/b)
[ 0.464][d][vo/gpu/vulkan] gray => 1 planes 1x1 8/0 [r8] (r)
[ 0.464][d][vo/gpu/vulkan] gray16 => 1 planes 1x1 16/0 [r16] (r)
[ 0.464][d][vo/gpu/vulkan] uyvy422
[ 0.464][d][vo/gpu/vulkan] nv12 => 2 planes 2x2 8/0 [r8/rg8] (r/gb)
[ 0.464][d][vo/gpu/vulkan] p010 => 2 planes 2x2 16/6 [r16/rg16] (r/gb)
[ 0.464][d][vo/gpu/vulkan] nv24 => 2 planes 1x1 8/0 [r8/rg8] (r/gb)
[ 0.464][d][vo/gpu/vulkan] argb => 1 planes 1x1 8/0 [rgba8] (argb)
[ 0.464][d][vo/gpu/vulkan] bgra => 1 planes 1x1 8/0 [rgba8] (bgra)
[ 0.464][d][vo/gpu/vulkan] abgr => 1 planes 1x1 8/0 [rgba8] (abgr)
[ 0.464][d][vo/gpu/vulkan] rgba => 1 planes 1x1 8/0 [rgba8] (rgba)
[ 0.475][d][vo/gpu/vulkan] bgr24 => 1 planes 1x1 8/0 [rgb8] (bgr)
[ 0.475][d][vo/gpu/vulkan] rgb24 => 1 planes 1x1 8/0 [rgb8] (rgb)
[ 0.475][d][vo/gpu/vulkan] 0rgb => 1 planes 1x1 8/0 [rgba8] (_rgb)
[ 0.475][d][vo/gpu/vulkan] bgr0 => 1 planes 1x1 8/0 [rgba8] (bgr)
[ 0.475][d][vo/gpu/vulkan] 0bgr => 1 planes 1x1 8/0 [rgba8] (_bgr)
[ 0.475][d][vo/gpu/vulkan] rgb0 => 1 planes 1x1 8/0 [rgba8] (rgb)
[ 0.475][d][vo/gpu/vulkan] rgba64 => 1 planes 1x1 16/0 [rgba16] (rgba)
[ 0.475][d][vo/gpu/vulkan] rgb565
[ 0.475][d][vo/gpu/vulkan] vdpau
[ 0.475][d][vo/gpu/vulkan] vdpau_output
[ 0.475][d][vo/gpu/vulkan] vaapi
[ 0.475][d][vo/gpu/vulkan] d3d11
[ 0.475][d][vo/gpu/vulkan] dxva2_vld
[ 0.475][d][vo/gpu/vulkan] mmal
[ 0.475][d][vo/gpu/vulkan] videotoolbox
[ 0.475][d][vo/gpu/vulkan] drm_prime
[ 0.475][d][vo/gpu/vulkan] cuda
[ 0.475][d][vo/gpu/vulkan] yuyv422
[ 0.475][d][vo/gpu/vulkan] yuv422p => 3 planes 2x1 8/0 [r8/r8/r8] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv410p => 3 planes 4x4 8/0 [r8/r8/r8] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv411p => 3 planes 4x1 8/0 [r8/r8/r8] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] monow
[ 0.475][d][vo/gpu/vulkan] monob
[ 0.475][d][vo/gpu/vulkan] pal8
[ 0.475][d][vo/gpu/vulkan] yuvj422p => 3 planes 2x1 8/0 [r8/r8/r8] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] uyyvyy411
[ 0.475][d][vo/gpu/vulkan] bgr8
[ 0.475][d][vo/gpu/vulkan] bgr4
[ 0.475][d][vo/gpu/vulkan] bgr4_byte
[ 0.475][d][vo/gpu/vulkan] rgb8
[ 0.475][d][vo/gpu/vulkan] rgb4
[ 0.475][d][vo/gpu/vulkan] rgb4_byte
[ 0.475][d][vo/gpu/vulkan] nv21 => 2 planes 2x2 8/0 [r8/rg8] (r/bg)
[ 0.475][d][vo/gpu/vulkan] gray16be
[ 0.475][d][vo/gpu/vulkan] yuv440p => 3 planes 1x2 8/0 [r8/r8/r8] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuvj440p => 3 planes 1x2 8/0 [r8/r8/r8] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuva420p => 4 planes 2x2 8/0 [r8/r8/r8/r8] (r/g/b/a)
[ 0.475][d][vo/gpu/vulkan] rgb48be
[ 0.475][d][vo/gpu/vulkan] rgb48 => 1 planes 1x1 16/0 [rgb16] (rgb)
[ 0.475][d][vo/gpu/vulkan] rgb565be
[ 0.475][d][vo/gpu/vulkan] rgb555be
[ 0.475][d][vo/gpu/vulkan] rgb555
[ 0.475][d][vo/gpu/vulkan] bgr565be
[ 0.475][d][vo/gpu/vulkan] bgr565
[ 0.475][d][vo/gpu/vulkan] bgr555be
[ 0.475][d][vo/gpu/vulkan] bgr555
[ 0.475][d][vo/gpu/vulkan] vaapi_moco
[ 0.475][d][vo/gpu/vulkan] vaapi_idct
[ 0.475][d][vo/gpu/vulkan] yuv420p16 => 3 planes 2x2 16/0 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv420p16be
[ 0.475][d][vo/gpu/vulkan] yuv422p16 => 3 planes 2x1 16/0 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv422p16be
[ 0.475][d][vo/gpu/vulkan] yuv444p16 => 3 planes 1x1 16/0 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv444p16be
[ 0.475][d][vo/gpu/vulkan] rgb444
[ 0.475][d][vo/gpu/vulkan] rgb444be
[ 0.475][d][vo/gpu/vulkan] bgr444
[ 0.475][d][vo/gpu/vulkan] bgr444be
[ 0.475][d][vo/gpu/vulkan] ya8 => 1 planes 1x1 8/0 [rg8] (ra)
[ 0.475][d][vo/gpu/vulkan] bgr48be
[ 0.475][d][vo/gpu/vulkan] bgr48 => 1 planes 1x1 16/0 [rgb16] (bgr)
[ 0.475][d][vo/gpu/vulkan] yuv420p9be
[ 0.475][d][vo/gpu/vulkan] yuv420p9 => 3 planes 2x2 16/-7 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv420p10be
[ 0.475][d][vo/gpu/vulkan] yuv420p10 => 3 planes 2x2 16/-6 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv422p10be
[ 0.475][d][vo/gpu/vulkan] yuv422p10 => 3 planes 2x1 16/-6 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv444p9be
[ 0.475][d][vo/gpu/vulkan] yuv444p9 => 3 planes 1x1 16/-7 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv444p10be
[ 0.475][d][vo/gpu/vulkan] yuv444p10 => 3 planes 1x1 16/-6 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] yuv422p9be
[ 0.475][d][vo/gpu/vulkan] yuv422p9 => 3 planes 2x1 16/-7 [r16/r16/r16] (r/g/b)
[ 0.475][d][vo/gpu/vulkan] gbrp => 3 planes 1x1 8/0 [r8/r8/r8] (g/b/r)
[ 0.475][d][vo/gpu/vulkan] gbrp9be
[ 0.475][d][vo/gpu/vulkan] gbrp9 => 3 planes 1x1 16/-7 [r16/r16/r16] (g/b/r)
[ 0.475][d][vo/gpu/vulkan] gbrp10be
[ 0.475][d][vo/gpu/vulkan] gbrp10 => 3 planes 1x1 16/-6 [r16/r16/r16] (g/b/r)
[ 0.475][d][vo/gpu/vulkan] gbrp16be
[ 0.475][d][vo/gpu/vulkan] gbrp16 => 3 planes 1x1 16/0 [r16/r16/r16] (g/b/r)
[ 0.475][d][vo/gpu/vulkan] yuva422p => 4 planes 2x1 8/0 [r8/r8/r8/r8] (r/g/b/a)
[ 0.475][d][vo/gpu/vulkan] yuva444p => 4 planes 1x1 8/0 [r8/r8/r8/r8] (r/g/b/a)
[ 0.475][d][vo/gpu/vulkan] yuva420p9be
[ 0.475][d][vo/gpu/vulkan] yuva420p9 => 4 planes 2x2 16/-7 [r16/r16/r16/r16] (r/g/b/a)
[ 0.475][d][vo/gpu/vulkan] yuva422p9be
[ 0.475][d][vo/gpu/vulkan] yuva422p9 => 4 planes 2x1 16/-7 [r16/r16/r16/r16] (r/g/b/a)
[ 0.475][d][vo/gpu/vulkan] yuva444p9be
[ 0.475][d][vo/gpu/vulkan] yuva444p9 => 4 planes 1x1 16/-7 [r16/r16/r16/r16] (r/g/b/a)
[ 0.475][d][vo/gpu/vulkan] yuva420p10be
[ 0.475][d][vo/gpu/vulkan] yuva420p10 => 4 planes 2x2 16/-6 [r16/r16/r16/r16] (r/g/b/a)
[ 0.476][d][vo/gpu/vulkan] yuva422p10be
[ 0.476][d][vo/gpu/vulkan] yuva422p10 => 4 planes 2x1 16/-6 [r16/r16/r16/r16] (r/g/b/a)
[ 0.476][d][vo/gpu/vulkan] yuva444p10be
[ 0.476][d][vo/gpu/vulkan] yuva444p10 => 4 planes 1x1 16/-6 [r16/r16/r16/r16] (r/g/b/a)
[ 0.476][d][vo/gpu/vulkan] yuva420p16be
[ 0.476][d][vo/gpu/vulkan] yuva420p16 => 4 planes 2x2 16/0 [r16/r16/r16/r16] (r/g/b/a)
[ 0.476][d][vo/gpu/vulkan] yuva422p16be
[ 0.476][d][vo/gpu/vulkan] yuva422p16 => 4 planes 2x1 16/0 [r16/r16/r16/r16] (r/g/b/a)
[ 0.476][d][vo/gpu/vulkan] yuva444p16be
[ 0.476][d][vo/gpu/vulkan] yuva444p16 => 4 planes 1x1 16/0 [r16/r16/r16/r16] (r/g/b/a)
[ 0.476][d][vo/gpu/vulkan] xyz12 => 1 planes 1x1 16/4 [rgb16] (rgb)
[ 0.476][d][vo/gpu/vulkan] xyz12be
[ 0.476][d][vo/gpu/vulkan] nv16 => 2 planes 2x1 8/0 [r8/rg8] (r/gb)
[ 0.476][d][vo/gpu/vulkan] nv20 => 2 planes 2x1 16/-6 [r16/rg16] (r/gb)
[ 0.476][d][vo/gpu/vulkan] nv20be
[ 0.476][d][vo/gpu/vulkan] rgba64be
[ 0.476][d][vo/gpu/vulkan] bgra64be
[ 0.476][d][vo/gpu/vulkan] bgra64 => 1 planes 1x1 16/0 [rgba16] (bgra)
[ 0.476][d][vo/gpu/vulkan] yvyu422
[ 0.476][d][vo/gpu/vulkan] ya16be
[ 0.476][d][vo/gpu/vulkan] ya16 => 1 planes 1x1 16/0 [rg16] (ra)
[ 0.476][d][vo/gpu/vulkan] gbrap => 4 planes 1x1 8/0 [r8/r8/r8/r8] (g/b/r/a)
[ 0.476][d][vo/gpu/vulkan] gbrap16be
[ 0.476][d][vo/gpu/vulkan] gbrap16 => 4 planes 1x1 16/0 [r16/r16/r16/r16] (g/b/r/a)
[ 0.476][d][vo/gpu/vulkan] qsv
[ 0.476][d][vo/gpu/vulkan] d3d11va_vld
[ 0.476][d][vo/gpu/vulkan] yuv420p12be
[ 0.476][d][vo/gpu/vulkan] yuv420p12 => 3 planes 2x2 16/-4 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] yuv420p14be
[ 0.476][d][vo/gpu/vulkan] yuv420p14 => 3 planes 2x2 16/-2 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] yuv422p12be
[ 0.476][d][vo/gpu/vulkan] yuv422p12 => 3 planes 2x1 16/-4 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] yuv422p14be
[ 0.476][d][vo/gpu/vulkan] yuv422p14 => 3 planes 2x1 16/-2 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] yuv444p12be
[ 0.476][d][vo/gpu/vulkan] yuv444p12 => 3 planes 1x1 16/-4 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] yuv444p14be
[ 0.476][d][vo/gpu/vulkan] yuv444p14 => 3 planes 1x1 16/-2 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] gbrp12be
[ 0.476][d][vo/gpu/vulkan] gbrp12 => 3 planes 1x1 16/-4 [r16/r16/r16] (g/b/r)
[ 0.476][d][vo/gpu/vulkan] gbrp14be
[ 0.476][d][vo/gpu/vulkan] gbrp14 => 3 planes 1x1 16/-2 [r16/r16/r16] (g/b/r)
[ 0.476][d][vo/gpu/vulkan] yuvj411p => 3 planes 4x1 8/0 [r8/r8/r8] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] bayer_bggr8
[ 0.476][d][vo/gpu/vulkan] bayer_rggb8
[ 0.476][d][vo/gpu/vulkan] bayer_gbrg8
[ 0.476][d][vo/gpu/vulkan] bayer_grbg8
[ 0.476][d][vo/gpu/vulkan] bayer_bggr16
[ 0.476][d][vo/gpu/vulkan] bayer_bggr16be
[ 0.476][d][vo/gpu/vulkan] bayer_rggb16
[ 0.476][d][vo/gpu/vulkan] bayer_rggb16be
[ 0.476][d][vo/gpu/vulkan] bayer_gbrg16
[ 0.476][d][vo/gpu/vulkan] bayer_gbrg16be
[ 0.476][d][vo/gpu/vulkan] bayer_grbg16
[ 0.476][d][vo/gpu/vulkan] bayer_grbg16be
[ 0.476][d][vo/gpu/vulkan] xvmc
[ 0.476][d][vo/gpu/vulkan] yuv440p10 => 3 planes 1x2 16/-6 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] yuv440p10be
[ 0.476][d][vo/gpu/vulkan] yuv440p12 => 3 planes 1x2 16/-4 [r16/r16/r16] (r/g/b)
[ 0.476][d][vo/gpu/vulkan] yuv440p12be
[ 0.476][d][vo/gpu/vulkan] ayuv64 => 1 planes 1x1 16/0 [rgba16] (argb)
[ 0.476][d][vo/gpu/vulkan] ayuv64be
[ 0.476][d][vo/gpu/vulkan] videotoolbox_vl
[ 0.476][d][vo/gpu/vulkan] p010be
[ 0.476][d][vo/gpu/vulkan] gbrap12be
[ 0.476][d][vo/gpu/vulkan] gbrap12 => 4 planes 1x1 16/-4 [r16/r16/r16/r16] (g/b/r/a)
[ 0.476][d][vo/gpu/vulkan] gbrap10be
[ 0.476][d][vo/gpu/vulkan] gbrap10 => 4 planes 1x1 16/-6 [r16/r16/r16/r16] (g/b/r/a)
[ 0.476][d][vo/gpu/vulkan] mediacodec
[ 0.476][d][vo/gpu/vulkan] gray12be
[ 0.476][d][vo/gpu/vulkan] gray12 => 1 planes 1x1 16/-4 [r16] (r)
[ 0.476][d][vo/gpu/vulkan] gray10be
[ 0.476][d][vo/gpu/vulkan] gray10 => 1 planes 1x1 16/-6 [r16] (r)
[ 0.476][d][vo/gpu/vulkan] p016 => 2 planes 2x2 16/0 [r16/rg16] (r/gb)
[ 0.476][d][vo/gpu/vulkan] p016be
[ 0.476][d][vo/gpu/vulkan] gray9be
[ 0.476][d][vo/gpu/vulkan] gray9 => 1 planes 1x1 16/-7 [r16] (r)
[ 0.476][d][vo/gpu/vulkan] gbrpf32be
[ 0.476][d][vo/gpu/vulkan] gbrpf32 => 3 planes 1x1 32/0 [r32f/r32f/r32f] (g/b/r)
[ 0.476][d][vo/gpu/vulkan] gbrapf32be
[ 0.477][d][vo/gpu/vulkan] gbrapf32 => 4 planes 1x1 32/0 [r32f/r32f/r32f/r32f] (g/b/r/a)
[ 0.477][d][vo/gpu/vulkan] opencl
[ 0.477][d][vo/gpu/vulkan] gray14be
[ 0.477][d][vo/gpu/vulkan] gray14 => 1 planes 1x1 16/-2 [r16] (r)
[ 0.477][d][vo/gpu/vulkan] grayf32be
[ 0.477][d][vo/gpu/vulkan] grayf32 => 1 planes 1x1 32/0 [r32f] (r)
[ 0.477][d][vo/gpu/vulkan] yuva422p12be
[ 0.477][d][vo/gpu/vulkan] yuva422p12 => 4 planes 2x1 16/-4 [r16/r16/r16/r16] (r/g/b/a)
[ 0.477][d][vo/gpu/vulkan] yuva444p12be
[ 0.477][d][vo/gpu/vulkan] yuva444p12 => 4 planes 1x1 16/-4 [r16/r16/r16/r16] (r/g/b/a)
[ 0.477][d][vo/gpu/vulkan] nv42 => 2 planes 1x1 8/0 [r8/rg8] (r/bg)
[ 0.477][v][vo/gpu] Testing FBO format rgba16hf
[ 0.477][d][vo/gpu] Resizing texture: 16x16
[ 0.477][v][vo/gpu/vulkan/libplacebo] Allocating 1048576 memory of type 0x1 (id 0) in heap 0
[ 0.478][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 0 + 4096 from slab with size 1048576
[ 0.478][d][vo/gpu/vulkan/libplacebo] Freeing slice 0 + 4096 from slab with size 1048576
[ 0.478][v][vo/gpu] Using FBO format rgba16hf.
[ 0.478][v][vo/gpu] No advanced processing required. Enabling dumb mode.
[ 0.478][v][vo/gpu/win32] DPI detected from the new API: 96
[ 0.478][v][vo/gpu/win32] display-fps: 144.000000
[ 0.493][v][vo/gpu/win32] color-profile: C:\WINDOWS\system32\spool\drivers\color\sRGB Color Space Profile.icm
[ 0.493][v][vo/gpu] Assuming 144.000000 FPS for display sync.
[ 0.495][v][vd] Container reported FPS: 23.976028
[ 0.497][v][vd] Codec list:
[ 0.497][v][vd] hevc - HEVC (High Efficiency Video Coding)
[ 0.497][v][vd] hevc_qsv (hevc) - HEVC (Intel Quick Sync Video acceleration)
[ 0.497][v][vd] hevc_cuvid (hevc) - Nvidia CUVID HEVC decoder
[ 0.497][v][vd] Opening decoder hevc
[ 0.497][v][vd] No hardware decoding requested.
[ 0.497][v][vd] Using software decoding.
[ 0.497][v][vd] Detected 8 logical cores.
[ 0.497][v][vd] Requesting 9 threads for decoding.
[ 0.499][v][vd] Selected codec: hevc (HEVC (High Efficiency Video Coding))
[ 0.500][v][vf] User filter list:
[ 0.500][v][vf] (empty)
[ 0.502][v][ad] Codec list:
[ 0.502][v][ad] aac - AAC (Advanced Audio Coding)
[ 0.502][v][ad] aac_fixed (aac) - AAC (Advanced Audio Coding)
[ 0.502][v][ad] Opening decoder aac
[ 0.502][v][ad] Requesting 1 threads for decoding.
[ 0.510][v][ad] Selected codec: aac (AAC (Advanced Audio Coding))
[ 0.510][v][af] User filter list:
[ 0.510][v][af] (empty)
[ 0.510][v][cplayer] Starting playback...
[ 0.512][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.512][v][af] [in] 44100Hz mono 1ch floatp
[ 0.512][v][af] [userspeed] 44100Hz mono 1ch floatp
[ 0.512][v][af] [userspeed] (disabled)
[ 0.512][v][af] [convert] 44100Hz mono 1ch floatp
[ 0.518][d][vd] DR parameter change to 3840x2176 yuv420p10 align=64
[ 0.518][d][vd] Allocating new DR image...
[ 0.518][v][vo/gpu/vulkan/libplacebo] Allocating 100270336 memory of type 0xe (id 3) in heap 1
[ 0.548][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 0 + 25067584 from slab with size 100270336
[ 0.556][d][vd] Allocating new DR image...
[ 0.556][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 25067616 + 25067584 from slab with size 100270336
[ 0.563][d][vd] Allocating new DR image...
[ 0.563][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 50135232 + 25067584 from slab with size 100270336
[ 0.571][d][vd] Allocating new DR image...
[ 0.571][v][vo/gpu/vulkan/libplacebo] Allocating 401081344 memory of type 0xe (id 3) in heap 1
[ 0.619][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 0 + 25067584 from slab with size 401081344
[ 0.623][d][vd] Allocating new DR image...
[ 0.623][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 25067616 + 25067584 from slab with size 401081344
[ 0.626][d][vd] Allocating new DR image...
[ 0.626][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 50135232 + 25067584 from slab with size 401081344
[ 0.630][d][vd] Allocating new DR image...
[ 0.630][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 75202848 + 25067584 from slab with size 401081344
[ 0.635][d][vd] Allocating new DR image...
[ 0.635][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 100270464 + 25067584 from slab with size 401081344
[ 0.639][v][vd] Decoder format: 3840x2160 yuv420p10 bt.2020-ncl/bt.2020/bt.1886/limited/auto CL=unknown (auto 0.000000/0.000000/0.000000)
[ 0.639][v][vf] [in] 3840x2160 yuv420p10 bt.2020-ncl/bt.2020/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.640][v][vf] [userdeint] 3840x2160 yuv420p10 bt.2020-ncl/bt.2020/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.640][v][vf] [userdeint] (disabled)
[ 0.640][v][vf] [autorotate] 3840x2160 yuv420p10 bt.2020-ncl/bt.2020/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.640][v][vf] [autorotate] (disabled)
[ 0.640][v][vf] [convert] 3840x2160 yuv420p10 bt.2020-ncl/bt.2020/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.640][v][vf] [convert] (disabled)
[ 0.640][v][vf] [out] 3840x2160 yuv420p10 bt.2020-ncl/bt.2020/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.640][v][ao] Trying audio driver 'wasapi'
[ 0.640][v][ao/wasapi] requested format: 44100 Hz, mono channels, floatp
[ 0.640][d][ao/wasapi] Init wasapi
[ 0.640][d][ao/wasapi] Find device ''
[ 0.640][d][vd] Allocating new DR image...
[ 0.641][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 125338080 + 25067584 from slab with size 401081344
[ 0.644][v][ao/wasapi] No device specified. Selecting default.
[ 0.647][v][ao/wasapi] Selecting device '{a2cc054d-e306-4bd9-96bd-06e26dbe15d8}' (1 - BenQ PJ (2- AMD High Definition Audio Device))
[ 0.647][v][ao/wasapi] Monitoring changes in device {0.0.0.00000000}.{a2cc054d-e306-4bd9-96bd-06e26dbe15d8}
[ 0.649][d][ao/wasapi] Init wasapi thread
[ 0.649][d][ao/wasapi] Activating pAudioClient interface
[ 0.651][d][ao/wasapi] Probing formats
[ 0.663][v][ao/wasapi] Trying mono float (32/32 bits) @ 44100hz (shared) -> ok
[ 0.663][v][ao/wasapi] Closest match is stereo float (32/32 bits) @ 48000hz
[ 0.663][v][ao/wasapi] Accepted as stereo float @ 48000hz -> stereo float (32/32 bits) @ 48000hz (shared)
[ 0.663][d][ao/wasapi] Fixing format
[ 0.663][d][ao/wasapi] IAudioClient::GetDevicePeriod
[ 0.663][v][ao/wasapi] Device period: 10 ms
[ 0.663][d][ao/wasapi] IAudioClient::Initialize
[ 0.675][d][ao/wasapi] IAudioClient::Initialize pRenderClient
[ 0.675][d][ao/wasapi] IAudioClient::Initialize IAudioClient_SetEventHandle
[ 0.675][d][ao/wasapi] IAudioClient::Initialize IAudioClient_GetBufferSize
[ 0.675][v][ao/wasapi] Buffer frame count: 2400 (50 ms)
[ 0.675][v][ao/wasapi] IAudioClock::GetFrequency gave a frequency of 384000.
[ 0.676][d][ao/wasapi] IAudioClient::Initialize pAudioVolume
[ 0.676][d][ao/wasapi] Entering dispatch loop
[ 0.676][d][ao/wasapi] Init wasapi done
[ 0.676][v][ao/wasapi] device buffer: 2400 samples.
[ 0.676][v][ao/wasapi] using soft-buffer of 9600 samples.
[ 0.677][i][cplayer] AO: [wasapi] 48000Hz stereo 2ch float
[ 0.677][v][cplayer] AO: Description: Windows WASAPI audio output (event mode)
[ 0.677][i][cplayer] VO: [gpu] 3840x2160 yuv420p10
[ 0.677][v][cplayer] VO: Description: Shader-based GPU Renderer
[ 0.677][v][vo/gpu] reconfig to 3840x2160 yuv420p10 bt.2020-ncl/bt.2020/bt.1886/limited/display SP=1.000000 CL=mpeg2/4/h264
[ 0.677][d][vo/gpu] screen size: 1920x1040
[ 0.677][v][vo/gpu/win32] save window bounds: 1600:-560:3840:2160
[ 0.678][v][vo/gpu/win32] reset window bounds: 2560:0:1920:1080
[ 0.680][v][vo/gpu/win32] DPI detected from the new API: 96
[ 0.681][v][vo/gpu/win32] display-fps: 59.940060
[ 0.690][v][vo/gpu/win32] color-profile: C:\WINDOWS\system32\spool\drivers\color\ASUS MG279 #1 2019-07-13 08-14 D6500 2.2 F-S XYZLUT+MTX.icm
[ 0.690][d][vo/gpu/win32] move window: 2560:0
[ 0.690][v][vo/gpu/win32] resize window: 1920:1080
[ 0.694][d][vo/gpu/vulkan/libplacebo] Requested image count: 4 (min 1 max 16)
[ 0.694][v][vo/gpu/vulkan/libplacebo] (Re)creating swapchain of size 1920x1080
[ 0.721][v][vo/gpu] Resize: 1920x1080
[ 0.721][v][vo/gpu] Window size: 1920x1080
[ 0.721][v][vo/gpu] Video source: 3840x2160 (1:1)
[ 0.721][v][vo/gpu] Video display: (0, 0) 3840x2160 -> (0, 0) 1920x1080
[ 0.721][v][vo/gpu] Video scale: 0.500000/0.500000
[ 0.721][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 0.721][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 0.721][v][vo/gpu] Texture for plane 0: 3840x2160
[ 0.721][v][vo/gpu/vulkan/libplacebo] Allocating 66846720 memory of type 0x1 (id 0) in heap 0
[ 0.729][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 0 + 16711680 from slab with size 66846720
[ 0.729][v][vo/gpu] Texture for plane 1: 1920x1080
[ 0.729][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 16711680 + 4718592 from slab with size 66846720
[ 0.729][v][vo/gpu] Texture for plane 2: 1920x1080
[ 0.729][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 21430272 + 4718592 from slab with size 66846720
[ 0.729][v][vo/gpu] Testing FBO format rgba16hf
[ 0.729][d][vo/gpu] Resizing texture: 16x16
[ 0.729][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 0 + 4096 from slab with size 1048576
[ 0.729][d][vo/gpu/vulkan/libplacebo] Freeing slice 0 + 4096 from slab with size 1048576
[ 0.729][v][vo/gpu] Using FBO format rgba16hf.
[ 0.729][v][vo/gpu] No advanced processing required. Enabling dumb mode.
[ 0.729][v][vo/gpu] Resize: 1920x1080
[ 0.729][v][vo/gpu] Window size: 1920x1080
[ 0.729][v][vo/gpu] Video source: 3840x2160 (1:1)
[ 0.729][v][vo/gpu] Video display: (0, 0) 3840x2160 -> (0, 0) 1920x1080
[ 0.729][v][vo/gpu] Video scale: 0.500000/0.500000
[ 0.729][v][vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[ 0.729][v][vo/gpu] Video borders: l=0 t=0 r=0 b=0
[ 0.729][v][vo/gpu] Assuming 59.940060 FPS for display sync.
[ 0.730][v][vo/gpu] DR enabled: yes
[ 0.731][v][vo/gpu/vulkan/libplacebo] Allocating 1048576 memory of type 0x1 (id 0) in heap 0
[ 0.731][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 0 + 192 from slab with size 1048576
[ 0.733][d][vo/gpu/vulkan/libplacebo] vertex shader source:
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 1] #version 450
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 2] #define tex1D texture
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 3] #define tex3D texture
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 5] layout(location=0) in vec2 vertex_position;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 6] layout(location=1) in vec2 vertex_texcoord0;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 7] layout(location=1) out vec2 texcoord0;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 8] layout(location=2) in vec2 vertex_texcoord1;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 9] layout(location=2) out vec2 texcoord1;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 10] layout(location=3) in vec2 vertex_texcoord2;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 11] layout(location=3) out vec2 texcoord2;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 12] void main() {
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 13] gl_Position = vec4(vertex_position, 1.0, 1.0);
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 14] texcoord0 = vertex_texcoord0;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 15] texcoord1 = vertex_texcoord1;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 16] texcoord2 = vertex_texcoord2;
[ 0.733][d][vo/gpu/vulkan/libplacebo] [ 17] }
[ 0.784][d][vo/gpu/vulkan/libplacebo] shaderc compile status 'success' (0 errors, 0 warnings)
[ 0.784][d][vo/gpu/vulkan/libplacebo] fragment shader source:
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 1] #version 450
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 2] #define tex1D texture
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 3] #define tex3D texture
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 4] #define LUT_POS(x, lut_size) mix(0.5 / (lut_size), 1.0 - 0.5 / (lut_size), (x))
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 5] layout(location=0) out vec4 out_color;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 6] layout(location=1) in vec2 texcoord0;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 7] layout(location=2) in vec2 texcoord1;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 8] layout(location=3) in vec2 texcoord2;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 9] layout(std140, binding=3) uniform UBO {
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 10] layout(offset=0) mat3 colormatrix;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 11] layout(offset=48) mat3 cms_matrix;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 12] layout(offset=96) mat2 texture_rot0;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 13] layout(offset=128) mat2 texture_rot1;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 14] layout(offset=160) mat2 texture_rot2;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 15] };
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 16] layout(std430, push_constant) uniform PushC {
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 17] layout(offset=0) vec3 colormatrix_c;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 18] layout(offset=16) vec3 src_luma;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 19] layout(offset=32) vec3 dst_luma;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 20] layout(offset=48) vec2 texture_size0;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 21] layout(offset=56) vec2 texture_off0;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 22] layout(offset=64) vec2 pixel_size0;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 23] layout(offset=72) vec2 texture_size1;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 24] layout(offset=80) vec2 texture_off1;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 25] layout(offset=88) vec2 pixel_size1;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 26] layout(offset=96) vec2 texture_size2;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 27] layout(offset=104) vec2 texture_off2;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 28] layout(offset=112) vec2 pixel_size2;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 29] };
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 30] layout(binding=0) uniform sampler2D texture0;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 31] layout(binding=1) uniform sampler2D texture1;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 32] layout(binding=2) uniform sampler2D texture2;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 33] void main() {
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 34] vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 35] color.r = 64.250000 * vec4(texture(texture0, texcoord0)).r;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 36] color.g = 64.250000 * vec4(texture(texture1, texcoord1)).r;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 37] color.b = 64.250000 * vec4(texture(texture2, texcoord2)).r;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 38] color = color.rgbr;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 39] color.rgb = mat3(colormatrix) * color.rgb + colormatrix_c;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 40] color.a = 1.0;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 41] // color mapping
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 42] // linearize
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 43] color.rgb = clamp(color.rgb, 0.0, 1.0);
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 44] color.rgb = pow(color.rgb, vec3(2.4));
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 45] color.rgb *= vec3(1.0/1.000000);
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 46] color.rgb *= vec3(1.000000);
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 47] color.rgb = cms_matrix * color.rgb;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 48] color.rgb *= vec3(1.000000);
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 49] // delinearize
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 50] color.rgb = clamp(color.rgb, 0.0, 1.0);
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 51] color.rgb *= vec3(1.000000);
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 52] color.rgb = pow(color.rgb, vec3(1.0/2.4));
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 53] out_color = color;
[ 0.784][d][vo/gpu/vulkan/libplacebo] [ 54] }
[ 0.788][d][vo/gpu/vulkan/libplacebo] shaderc compile status 'success' (0 errors, 0 warnings)
[ 0.794][d][vo/gpu/vulkan/libplacebo] Pass statistics: size 42636, SPIR-V: vert 932 frag 2568 comp 0
[ 0.795][v][vo/gpu/vulkan/libplacebo] Allocating 1048576 memory of type 0x1 (id 0) in heap 0
[ 0.796][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 0 + 192 from slab with size 1048576
[ 0.796][d][vo/gpu/vulkan/libplacebo] Resized buffer pool of type 6 to size 1
[ 0.796][v][osd/libass] fontselect: (sans-serif, 400, 0) -> ArialMT, 0, ArialMT
[ 0.797][v][cplayer] first video frame after restart shown
[ 0.797][v][autoconvert] inserting resampler
[ 0.798][v][swresample] format change, reinitializing resampler
[ 0.798][v][swresample] 44100Hz mono floatp -> 48000Hz stereo float
[ 0.798][v][swresample] Remix: mono -> stereo
[ 0.798][v][af] [out] 48000Hz stereo 2ch float
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.798][v][cplayer] starting audio playback
[ 0.798][v][cplayer] playback restart complete @ 0.000000
[ 0.798][d][ao/wasapi] Thread Resume
[ 0.798][d][ao/wasapi] Thread Reset
[ 0.799][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.799][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.799][d][vd] Allocating new DR image...
[ 0.799][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 150405696 + 25067584 from slab with size 401081344
[ 0.803][d][vd] Allocating new DR image...
[ 0.803][d][osc] osc_init
[ 0.803][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.841][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 175473312 + 25067584 from slab with size 401081344
[ 0.844][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.844][d][vd] Allocating new DR image...
[ 0.893][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 200540928 + 25067584 from slab with size 401081344
[ 0.895][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.895][d][vd] Allocating new DR image...
[ 0.895][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.895][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.935][d][vo/gpu/vulkan/libplacebo] Sub-allocating slice 225608544 + 25067584 from slab with size 401081344
[ 0.938][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.938][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 0.976][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.017][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.017][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.049][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.060][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.102][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.102][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.143][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.185][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.185][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.227][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.227][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.268][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.269][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.309][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.310][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.352][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.394][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.394][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.435][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.435][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.477][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.477][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.519][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.519][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.560][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.601][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.601][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.643][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.644][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.676][v][ao/wasapi] OnPropertyValueChanged triggered on device {0.0.0.00000000}.{a2cc054d-e306-4bd9-96bd-06e26dbe15d8}
[ 1.677][v][ao/wasapi] Changed property: {9855c4cd-df8c-449c-a181-8191b68bd06c},0
[ 1.686][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.686][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.726][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.769][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.769][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.810][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.810][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.853][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.853][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.894][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.894][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.935][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.978][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.978][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 1.978][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.019][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.061][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.061][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.102][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.102][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.145][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.185][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.185][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.227][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.227][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.269][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.269][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.310][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.310][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.353][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.394][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.394][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.437][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.437][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.477][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.477][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.519][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.519][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.561][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.562][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.602][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.645][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.645][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.686][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.686][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.729][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.729][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.770][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.770][d][ffmpeg/audio] aac: ChannelElement 1.0 missing
[ 2.787][d][cplayer] Run command: cycle, flags=73, args=[pause, (NULL)]
[ 2.787][v][cplayer] Set property: pause -> 1
[ 2.787][d][ao/wasapi] Thread Reset
[ 11.147][d][cplayer] Run command: quit, flags=73, args=[0]
[ 11.147][v][cplayer] EOF code: 5
[ 11.147][v][ad] Uninit decoder.
[ 11.147][d][ao/wasapi] Thread Reset
[ 11.147][v][vd] Uninit decoder.
[ 11.193][d][cplayer] Terminating demuxers...
[ 11.194][d][cplayer] Done terminating demuxers.
[ 11.194][v][cplayer] finished playback, success (reason 3)
[ 11.195][i][cplayer]
[ 11.195][i][cplayer]
[ 11.196][i][cplayer] Exiting... (Quit)
[ 11.196][v][ytdl_hook] Exiting...
[ 11.196][v][stats] Exiting...
[ 11.197][v][osc] Exiting...
[ 11.200][d][ao/wasapi] Uninit wasapi
[ 11.200][d][ao/wasapi] Thread Reset
[ 11.200][d][ao/wasapi] Thread Reset
[ 11.200][d][ao/wasapi] Thread shutdown
[ 11.207][d][ao/wasapi] Thread uninit done
[ 11.207][d][ao/wasapi] Thread return
[ 11.208][d][ao/wasapi] Uninit wasapi done
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 0 + 25067584 from slab with size 100270336
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 25067616 + 25067584 from slab with size 100270336
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 50135232 + 25067584 from slab with size 100270336
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 0 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 25067616 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 50135232 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 75202848 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 100270464 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 125338080 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 175473312 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 200540928 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 225608544 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 150405696 + 25067584 from slab with size 401081344
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 0 + 16711680 from slab with size 66846720
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 16711680 + 4718592 from slab with size 66846720
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 21430272 + 4718592 from slab with size 66846720
[ 11.208][d][vo/gpu] flushing shader cache
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 0 + 192 from slab with size 1048576
[ 11.208][d][vo/gpu/vulkan/libplacebo] Freeing slice 0 + 192 from slab with size 1048576
[ 11.213][v][vo/gpu/vulkan/libplacebo] Freed slab of size 1048576
[ 11.213][v][vo/gpu/vulkan/libplacebo] Freed slab of size 66846720
[ 11.214][v][vo/gpu/vulkan/libplacebo] Freed slab of size 100270336
[ 11.215][v][vo/gpu/vulkan/libplacebo] Freed slab of size 401081344
[ 11.256][v][vo/gpu/vulkan/libplacebo] Freed slab of size 1048576
[ 11.257][v][vo/gpu/vulkan/libplacebo] Freed slab of size 1048576
[ 11.257][d][vo/gpu/vulkan/libplacebo] Flushing remaining commands...
[ 11.267][v][vo/gpu/win32] uninit
For Windows 10 1903 + AMD Driver 19.7.3, rossy's build still needs at least windowed-fullscreen to make 10 bit work. i.e., witout --fs 10 bit won't work, but --d3d11-exclusive is not a hard requirement (still a good thing to have).
If the goal is to play HDR10 videos, a full 10-bit chain is not necessary. To prevent automatic remapping to SDR, the correct HDR WCG 10-bit DXGI formats must be used even if the signal is 8-bit RGB with dithering.
It seems mpv git master branch already support 10bit?
I just test mpv git master in Windows 10 1903 with nvidia 10-bit enabled driver. And didn't see any different form the old 10bit build and the shinchiro git build. Both mpv versions show smooth bars.
Used test file https://jursonovicst.github.io/gradient/
[vo/gpu] Reported display depth: 8
But actually 10bit?
gradients are usually smooth, even on 8 bit, because mpv might slightly deband (depending on the settings) and also dithers.
the reported display depth has noting todo with the actual 10 bit support. it's usually just what depth the actual context returns. in the case of opengl it's what "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE" returns from the framebuffer. so either the context in your case isn't requesting a 10bit capable one or it couldn't. this is just the general idea.
can't give you a more definite answer, since i don't know what backend is actually used on your end and depending on the backend i am sure if it's implemented.
@Akemi so how to check it?
no idea like that. there is no log. i have no clue what settings you use. i have no clue what backend you use, etc. also i am not on windows nor am i a windows dev.
you either check the code or get a reply of a specific dev who knows.
i personally am only aware that 10bit support is available on linux. if i remember correctly till some time ago windows only had support for 10bit surfaces via directx but not opengl (at least with nvidia)? for macOS i only recently made a PR (#6819). our vulkan gpu backend doesn't support it yet(?), neither does angle nor d3d11(?) or at least the detection of a higher bit depth than 10. it could actually request a proper framebuffer/surface/context.
I know 10bit is support in linux, but neither GNOME nor KDE support 10bit and they show corrupted colors when I enabled 10bit in Xorg.
And I just removed all configures and tested gradients in Windows mpv, and it was the deband effect in git branch. But I can also confirm the 10bit test version works with --d3d11-colorspace=srgb --d3d11-format=rgb10_a2 --target-trc=srgb --target-prim=bt.709 in both fs and non-fs.
if it still says "[vo/gpu] Reported display depth: 8", it will still dither to 8bit and with a 10 bit context/surface/framebuffer you will not see any 'improvements'. if a 10bit capable one is selected, and in the case the detection of the bit depth fails you would at least need to set --dither-depth=10 to overwrite the auto-detection.
also dithering already can eliminate quite a bit of banding.
[cplayer] (+) Video --vid=1 (*) (hevc 3840x2160 5.000fps)
[vo/gpu] Probing for best GPU context.
[vo/gpu/d3d11] Initializing GPU context 'd3d11'
[vo/gpu/d3d11] Using Direct3D 11 feature level 12_1
[vo/gpu/d3d11] Device Name: NVIDIA GeForce GTX 1070
[vo/gpu/d3d11] Device ID: 10de:1b81 (rev a1)
[vo/gpu/d3d11] Subsystem ID: 1458:36fc
[vo/gpu/d3d11] LUID: 000000000000de0c
[vo/gpu/d3d11] Initializing SPIR-V compiler 'shaderc'
[vo/gpu/d3d11] Using Direct3D 11.1 runtime
[vo/gpu/d3d11] Maximum Texture2D size: 16384x16384
[vo/gpu/d3d11] D3DCompiler version: 10.0.18362.1
[vo/gpu/d3d11] Swapchain format: 24
[vo/gpu/d3d11] Using DXGI 1.2+
[vo/gpu/d3d11] Using flip-model presentation
[vo/gpu] Testing FBO format rgba16
[vo/gpu] Using FBO format rgba16.
[vo/gpu/win32] DPI detected from the new API: 144
[vo/gpu/win32] display-fps: 59.997000
[vo/gpu/win32] color-profile: C:\Windows\system32\spool\drivers\color\sRGB Color Space Profile.icm
[vo/gpu] Assuming 59.997000 FPS for display sync.
[vd] Container reported FPS: 5.000000
[vd] Codec list:
[vd] hevc - HEVC (High Efficiency Video Coding)
[vd] hevc_cuvid (hevc) - Nvidia CUVID HEVC decoder
[vd] Opening video decoder hevc
[vd] Not trying to use hardware decoding: codec hevc is not on whitelist, or does not support hardware acceleration.
[vd] Using software decoding.
[vd] Detected 24 logical cores.
[vd] Requesting 16 threads for decoding.
[vd] Selected video codec: hevc (HEVC (High Efficiency Video Coding))
[cplayer] Starting playback...
[vd] Decoder format: 3840x2160 [0:1] gbrp10 rgb/auto/auto/full CL=unknown (auto 0.000000/0.000000/0.000000)
[vf] Video filter chain:
[vf] [in] 3840x2160 gbrp10 rgb/bt.709/srgb/full SP=1.000000 CL=mpeg1/jpeg
[vf] [out] 3840x2160 gbrp10 rgb/bt.709/srgb/full SP=1.000000 CL=mpeg1/jpeg
[cplayer] VO: [gpu] 3840x2160 gbrp10
[cplayer] VO: Description: Shader-based GPU Renderer
[vo/gpu] Reported display depth: 10
[vo/gpu] Testing FBO format rgba16
[vo/gpu] Using FBO format rgba16.
[vo/gpu] Reported display depth: 10
[vo/gpu] Dither to 10.
Looks fine?
with Swapchain format: 24 (DXGI_FORMAT_R10G10B10A2_UNORM) it seems fine, as far as a quick looks goes.
Any plan to merge the patch? Although it is not mature but works in some case.
BTW, is that even a legit file from your test? The log indicates a container FPS of 5.000?
@Hrxn it was the test video in https://jursonovicst.github.io/gradient/
I watched a 10bit movie later and it looks good.
Ah, okay. Yeah, a gradient test file, makes sense, good idea.
@RinCat The patch from rossy would be part of PR #5804. My initial intention for opening this issue was just SDR 10 bit presentation. Anyway, if HDR 10 bit gets implemented, then of course SDR 10 bit is already covered.
I watched a 10bit movie later and it looks good.
How different are they? Between 10 bit and 8 bit presentations, if you use --profile=gpu-hq (which turns on deband) and --dither-depth=10 for 10 bit build (--dither-depth=8 for git master build)? I didn't test with deband enabled actually.
@zc62 can't say much different between gpu-hq + 8bit dither and 10bit + 10bit dither when the video is high bitrate. They are only slightly different when paused and compared one by one.
I will check some low bitrate video later.
So I'm reading through all of this information, and I want to make sure I'm understanding things correctly. I have an HDR display and I'm running Windows 10 1903 in HDR10. I have an Nvidia RTX 2060 with the Studio 431.70 driver, configured to 4:2:2 12bit. I have --dither-depth=10 in my config, and I'm using an icc. The mpv log (attached) says that the display depth is 8 bit, when clearly it isn't. But based of what Rossy said earlier, the fbo chosen, would suggest 10 bit. I have tried --gpu-api=vulkan and --gpu-api=opengl, as well as auto. The result each time, is the same. The picture appears to be correct??? But am I actually getting a 10 bit output? Does setting the dither depth override the display depth report?
I have an Nvidia RTX 2060 with the Studio 431.70 driver, configured to 4:2:2 12bit.
Please clarify here, configured to what exactly? Because the driver output (I don't have this new driver and my GPU is fairly old, but I'm pretty sure that's something still working the same) should always be RGB, and there is no chroma subsampling then. Do you just mean that you have set the output to 12 bit in the nvidia driver options (12 bpc, bits per channel, as it should be called in their driver)?
Do you just mean that you have set the output to 12 bit in the nvidia driver options (12 bpc, bits per channel, as it should be called in their driver)?
Yes, in the Nvidia control panel I have set it to 4:2:2 12 bits per channel.
Because the driver output (I don't have this new driver and my GPU is fairly old, but I'm pretty sure that's something still working the same) should always be RGB, and there is no chroma subsampling then
But wouldn't that guarantee an 8 bit depth?


But wouldn't that guarantee an 8 bit depth?
No, of course not, for example this swapchain format mentioned earlier in here:
DXGI_FORMAT_R10G10B10A2_UNORM
Which is, taken from MSFT Docs:
A four-component, 32-bit unsigned-normalized-integer format that supports 10 bits for each color and 2 bits for alpha.
So 10 bits depth for R, G, and B.
Yes, in the Nvidia control panel I have set it to 4:2:2 12 bits per channel.
Could you provide a screenshot of this from the driver control panel? Cause that doesn't look right, how/why would you enforce a 4:2:2 chroma subsampling in the driver?
I mean, you probably can somehow, but this would then interfere with whatever gets sent out from mpv, from example, I think.
Could you provide a screenshot of this from the driver control panel? Cause that doesn't look right, how/why would you enforce a 4:2:2 chroma subsampling in the driver?

@Doofussy2 You are using mpv git master build, which does not support 10 bit on windows, this is why this issue is here. Use rossy's build to test 10 bit capability.
YCbCr422 is not recommended. Choose 10 bpc, RGB, Full range.
Choose 10 bpc, RGB, Full range.
There is no such option. It's always 8 bit.

Ah, yes, these screenshots show actually the driver output options I had in mind.
Well, if you have this new nVidia Studio driver (together with a pretty recent GPU supported by it), then you should be able to choose 10 bpc there. At least that's my understanding of their new driver... I run the latest normal nVidia drivers, but on an old GPU, I can only select 8 bpc there.
Well, if you have this new nVidia Studio driver (together with a pretty recent GPU supported by it), then you should be able to choose 10 bpc there. At least that's my understanding of their new driver... I run the latest normal nVidia drivers, but on an old GPU, I can only select 8 bpc there.
I have a GTX 1050, GTX 1060 and this RTX 2060. With all of them, with any driver, the options never change.
Apologies guys, Rossy's build was so far back, it was hidden. I just gave it a try, and that makes a big difference. Not so much to the color, as it appears that I had that pretty well dialed in, but with this build, I get the correct luminance.
But there it is, 10 bit
[ 0.104][v][vo/gpu] Reported display depth: 10
[ 0.104][v][vo/gpu] Testing FBO format rgba16
[ 0.104][d][vo/gpu] Resizing texture: 16x16
[ 0.104][v][vo/gpu] Using FBO format rgba16.
This really needs to be rolled into the master.
This is achieving HDR passthrough, for me!
There is no such option. It's always 8 bit.
Sounds like you are using an UHD HDR TV. Then 422 12bit is reasonable. But I guess mpv is always outputting RGB? https://github.com/mpv-player/mpv/wiki/Video-output---shader-stage-diagram
Sounds like you are using an UHD HDR TV.
Correct. I am using a 55 inch display.
But I guess mpv is always outputting RGB?
Based on that diagram, it would appear that it always converts to RGB. And in my case it doesn't appear to matter, as no tone mapping is being done, and the display is doing all the work. The metadata is being passed to the display. Which raises a new set of issues for me, but that's a different subject.
@Doofussy2 what's your cable? HDMI or DP?
what's your cable? HDMI or DP?
HDMI
@Doofussy2
4K Full RGB 10bit request 18Gbps bandwidth, so you cannot use it unless all your devices support HDMI 2.1.
Try use DisplayPort 1.3+.
4K Full RGB 10bit request 18Gbps bandwidth, so you cannot use it unless all your devices support HDMI 2.1.
That's incorrect. HDMI 2.0a, b and c all have full support. And the full bandwidth only used at 60fps. I've been doing this for years.
HDMI 2.1 supports up to 10K / 48Gb/s. My cables support 18Gb/s
@Doofussy2 No, HDMI 2.0abc at 18Gb/s only can do 4K HDR @ 60 with 4:2:0 or 4:2:2, no full RGB support.
Oh I see what you're saying. But it would still terminate to HDMI, as my GPU is the only device with a DP.
You have chosen 4K @ 60 with RGB full range, so you can't do 10bit. that's why only 8bit in the list.
You have chosen 4K @ 60 with RGB full range, so you can't do 10bit. that's why only 8bit in the list.
Right, but I don't have much choice. I'm not lowering the refresh rate. I have a DP 1.4 active dongle. I may give that a try, but everything appears to be working well :)
Any updates on this?
By this I mean native 10 bit output for Windows 10.
@jeeb's test build doesn't enable SDR 10 bit in Windows. @rossy's does. I very much want this to work.
@Doofussy2 it would be pretty sweet if they add it, now that almost every 4K TV has a 10-bit panel(or 8-bit+2-bit FRC) it would be great if mpv could display 10-bit content on a 10-bit display correctly.
Most helpful comment
@zc62 Ah great. I've also been experimenting with this. I have a branch that lets you manually set the format of the backbuffer and the DXGI colourspace tagging (no auto-detection yet here either.)
The branch is here: https://github.com/rossy/mpv/tree/high-bit-depth-experiment
Build here: https://files.jrg.systems/mpv-10bit-x86_64-20171226-git-a134537.7z
The (non-final) options are
--d3d11-colorspace,--d3d11-formatand--d3d11-exclusive(for exclusive FS.) As far as I can tell, there are only four combinations of--d3d11-colorspaceand--d3d11-formatthat work:--d3d11-colorspace=srgb --d3d11-format=rgba8 --target-trc=srgb --target-prim=bt.7098-bit sRGB/BT.709
--d3d11-colorspace=srgb --d3d11-format=rgb10_a2 --target-trc=srgb --target-prim=bt.70910-bit sRGB/BT.709
--d3d11-colorspace=linear --d3d11-format=rgba16f --target-trc=linear --target-prim=bt.70916-bit linear RGB
--d3d11-colorspace=hdr --d3d11-format=rgb10_a2 --target-trc=pq --target-prim=bt.202010-bit HDR
Since I don't have test hardware myself, it would be great if people with high-bit-depth, wide-gamut or HDR monitors could test this and tell me which modes are useful and which work on the desktop, in windowed fullscreen and in exclusive fullscreen.
As for auto-detection, I have a tool that dumps the DXGI 1.6 data.
Source: https://gist.github.com/rossy/fb7b476d272ae166d635156f07d20264
Binary: https://files.jrg.systems/dxgiinfo.7z
As above, if anyone has high-bit-depth, wide-gamut or HDR monitors and Windows 10 1709, it would be great if you could run that tool on your computer and report the results. My results are here. For high-bit-depth, there should be at least one output with
Bits-per-color: 10orBits-per-color: 12.Yeah, the display depth detection is pretty naive at the moment. That should be fixed in my branch.
Well, the same formats supported for borderless FS should be supported in windowed mode as well. I don't know whether it truncates to 8-bit or not though. For exclusive FS, you're right. As far as I remember, Windows 7 supports formats for scan-out (rgb10_a2) that are not supported in windowed mode.