Hello,
I know there are a Guru(s) out here knows everything about the low-level stuff where GPU hardware talks to software…
I got a question for the guru(s), its about the RTX 3080 TI GPU, does it contain any silicon hardware which does hardware acceleration of color matrix conversion for NV12 to RGB?
I know this is not the same concept as to NVDEC / NVENC hardware blocks.
However something really interesting I found was from DirectX12 output log (DXDIAG.exe):
It shows that the RTX 3080 TI has the following “Deinterlace Caps:”
Deinterlace Caps:
{6CB69578-7617-4637-91E5-1C02DB810285}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_PixelAdaptive {F9F19DA5-3B09-4B2F-9D89-C64753E3EAAB}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY {5A54A0C9-C7EC-4BD9-8EDE-F3C75DC4393B}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY {335AA36E-7884-43A4-9C91-7F87FAF3E37E}: Format(In/Out)=(NV12,0x3231564e) Frames(Prev/Fwd/Back)=(0,0,0) Caps=VideoProcess_YUV2RGB VideoProcess_StretchX VideoProcess_StretchY DeinterlaceTech_BOBVerticalStretch
It shows NV12,0x3231564e and Caps=VideoProcess_YUV2RG.
Does this mean that DXDIAG.exe detected RTX 3080 TI has dedicated silicon hardware to perform NV12 to RGB color matrix operations or it uses the CUDA cores to do this?
I also did some DirectX 12 feature level support API calls to see what the GPU has hardware capabilities with DirectX 12, I found the following that it supports all of these for DXGI_FORMAT_NV12:
D3D12_FORMAT_SUPPORT1_TEXTURE2D
D3D12_FORMAT_SUPPORT1_SHADER_LOAD
D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE
D3D12_FORMAT_SUPPORT1_SHADER_GATHER
D3D12_FORMAT_SUPPORT1_RENDER_TARGET
D3D12_FORMAT_SUPPORT1_BLENDABLE
D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW
D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT
D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT
D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT
D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE
I also noticed that DirectX 12 has something called ID3D12VideoProcessor, can this be used to do NV12 to RGB in hardware not used by CUDA cores?:
I also found this in DXVA Checker APP:
Any advice would be much appreciated.
Thanks.
