Conversation
Signed-off-by: Tony Zlatinski <tzlatinski@nvidia.com>
…uite Major features: - RGBA to YCbCr color conversion filter with 4:4:4, 4:2:2, 4:2:0 support - BT.601, BT.709, BT.2020 color primaries via YcbcrBtMatrix - Y-subsampling output for Adaptive Quantization (AQ) algorithms - Transfer operations (COPY_IMAGE_TO_BUFFER, COPY_BUFFER_TO_IMAGE) - VkImageResourceView YCbCr sampler conversion support Test infrastructure (common/libs/tests/): - FilterTestApp using VulkanDeviceContext pattern from encoder sample - 38+ test cases: format conversions, color primaries, ranges, resolutions - CPU-side ColorConversion module for verification - Test scripts: run_all_tests.sh, test_filter.sh Documentation (docs/): - VulkanFilterYuvCompute_FlexibleIO_Design.md - I/O slot architecture - VulkanFilterYuvCompute_Architecture_Requirements.md - Full API reference - VulkanFilterYuvCompute_Architecture_Review.md - Implementation review - SVG diagrams for pipeline and data flow visualization Bug fixes: - Fix compute dispatch for 4:2:2 and 4:4:4 output formats - Fix BT.2020 returning BT.709 coefficients in GetYcbcrPrimariesConstantsId() - Fix RGBA2YCBCR descriptor type mismatch (storage vs sampled) - Fix numPlanes initialization for single-plane RGBA images - Use image2D instead of image2DArray for single-layer images - Add null checks in VulkanComputePipeline Destroy methods - Support UINT64_MAX as sentinel for OPTIMAL tiling export Signed-off-by: Tony Zlatinski <tzlatinski@nvidia.com>
…Utils Enable cross-process YCbCr image sharing via DMA-BUF (Linux) or NT handles (Windows) with proper tiled layouts for video encoders. VulkanDeviceMemoryImpl: - CreateWithExport(): Allocate with VkExportMemoryAllocateInfo - ExportNativeHandle(): Export DMA-BUF FD or NT handle - GetMemoryTypeIndex(): For opaque FD cross-process import - IsExportable(), GetExportHandleTypes() accessors VkImageResource: - CreateExportable(): Images with DRM modifiers and export handles - GetDrmFormatModifier(), UsesDrmFormatModifier() accessors - GetMemoryPlaneCount(), GetMemoryPlaneLayout() for plane info - GetImageTiling(), IsLinearImage(), GetPlaneLayout() helpers - Query actual DRM modifier from driver after image creation Bug fixes: - Handle DRM_FORMAT_MOD_LINEAR (value 0) correctly - check DMA_BUF handle type instead of modifier value to determine DRM tiling - Add VkImageFormatListCreateInfo for MUTABLE_FORMAT with DRM modifiers (VUID-VkImageCreateInfo-tiling-02353) Signed-off-by: Tony Zlatinski <tzlatinski@nvidia.com>
Python test scripts for H.264, H.265, AV1, VP9 decoder and H.264, H.265, AV1 encoder with Adaptive Quantization (AQ) support. Works on Linux and Windows. Python scripts (cross-platform): - run_decoder_tests.py: Decoder tests for all codecs - run_encoder_tests.py: Encoder tests with AQ support - run_all_video_tests.py: Unified test runner - vulkan_video_test.py: Full framework with JSON reporting Shell scripts (Linux only, legacy): - run_decoder_tests.sh, run_encoder_tests.sh, run_all_video_tests.sh Key features: - Required --video-dir parameter (no default content directory) - Validates video directory exists before running tests - Remote execution via SSH (default: 127.0.0.1/localhost) - --remote <host> to specify remote host - --local flag for local execution (required on Windows) - Vulkan validation layer support (--validate) - Codec filtering (--codec h264|h265|av1|vp9) - Quick test mode (--quick) - ANSI color output (auto-detected on Windows Terminal) Signed-off-by: Tony Zlatinski <tzlatinski@nvidia.com>
Contributor
Author
|
dabrain34, @srinathkr-nv and @krajunv, please review these changes. |
…/export Add comprehensive test application for DRM format modifier support in Vulkan, covering LINEAR and block-linear (optimal tiling) modifiers for multiplanar YCbCr formats. Test application (drm_format_mod_test): - Query and enumerate DRM format modifiers per format - Export images via VK_EXT_image_drm_format_modifier + VK_KHR_external_memory_fd - Import via DMA-BUF fd with plane layout propagation - Round-trip validation: export -> import -> verify matching layouts - Block-linear import using VkImageDrmFormatModifierListCreateInfoEXT - Vendor-aware modifier decoding (NVIDIA block-linear fields) - Compression modifier detection and --compression CLI option - Supports NV12, P010, P012, P016, NV16, P210 VkCodecUtils infrastructure changes: - VkImageResource: Add dedicated memory allocation for DMA-BUF exportable images (VkMemoryDedicatedAllocateInfo) - VulkanDeviceMemoryImpl: Fix dedicated allocation size calculation and DRM modifier memory requirements query Build: integrated into common/libs/tests/ CMake build system.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.