Граф коммитов
80 Коммитов
Автор SHA1 Сообщение Дата
Aryan Salmanpour fe0fee01d0 code cleanup - remove unnecessary check (#492) 2025-01-16 14:06:28 -05:00
jeffqjiangNewиKiriti Gowda ef06f12dfa Added the new GPU VA context class to handle VA connections to GPU. Removed the hard coded HW decoder capability info. (#415)
* * rocDecode: Removed the hard coded HW decoder capability info.
 - We now probe HW decoder capabilities through VA-API from the driver.

* * rocDecode: Added number of decoder prob and a few missing tear down calls.

* * rocDecode/HW cap change: Added a new singleton class, GpuVaContext, to handle HIP and VA initialization and VA attributes probe for both HW capability check and decoder initialization.

* * rocDecode/HW caps: Removed GpuVaContext class out of vaapi_videodecoder.h and into a new file. Removed debug logs. Removed roc_decoder_caps.h.

* * rocDecode/HW caps: Fixed a crash issue with multi-thread cases. Called to vaInitialize() and vaTerminte() should be paired.

* * rocDecode/HW caps: Added multi-GPU support.

* * rocDecode/HW cap: Moved GpuVaContext class implementation back to VAAPI layer.

* * rocDecode/HW cap: Added changed based on review comments.

* * rocDecode/HW cap: Added changes based on review comments.

* * rocDecode/HW cap: GPU VA context class name change based on review comment.

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
2025-01-10 14:44:06 -05:00
Aryan Salmanpour 6477cd1100 code clean up (#490) 2025-01-09 10:38:54 -05:00
Aryan Salmanpour 3624040ce7 Update Copyright year to 2025 (#486)
* Update Copyright year to 2025

* update year to 2025
2025-01-05 16:25:39 -05:00
Aryan Salmanpour 0b24f96bbb Add support for mapping GPU UUIDs to render nodes (#481)
* Add initial support for mapping uuid to render ndodes

* use uuid to find the render node

* Adjust offset for MI300 partition modes

* code cleanup
2024-12-19 14:12:57 -05:00
Aryan Salmanpour e3816a23e6 Add support for ROCR_VISIBLE_DEVICES environment variable (#478) 2024-12-17 12:04:59 -05:00
David Rosca 80e08f47c2 Create surfaces with linear modifier (#465)
Mesa will be enabling tiling for all VA surfaces by default,
but HIP doesn't support modifiers for dmabuf import.
2024-12-09 14:46:57 -05:00
Aryan Salmanpour 91ab3b1577 Use a pointer for the horizontal_pitch parameter in the rocDecGetVideoFrame API (#475) 2024-12-05 19:22:07 -05:00
Aryan Salmanpour 3dfb669f57 Add support for rocDecode APIs dispatch table (#462) 2024-11-27 16:14:30 -05:00
jeffqjiangNewиKiriti Gowda 3eb6bc2192 Added initial code for VP9 support. (#442)
* * rocDecode/VP9: Initial code for VP9.
 - Added structures for VA-API.
 - Added defines for uncompressed header and parsing functions.

* * rocDecode/VP9: Added decode frame call to VA-API.

* * rocDecode/VP9: Added new sequence notification function.

* * rocDecode/VP9: Intra decode started to work.

* * rocDecode/VP9: Minor changes based on review comments.

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
2024-11-14 10:17:46 -05:00
Kiriti Gowda 69eb625d2d GPU Arch Updates (#448) 2024-11-06 20:37:07 -05:00
Rajy Rawther 29bfe5e3bd Add new API rocDecParserMarkFrameForReuse() for Parser (#430)
* added new API to release video frame for decoder and parser

* removed ReleseFrame() from low level parser classes

* Removed rocDecReleaseFrame() from decoder and added in parser

* address review comments

* revert un-necessary files

* minor fix

* remove unused function

* minor formatting fix
2024-10-09 13:29:08 -04:00
Kiriti Gowda eb5f2da4ae Support GFX12 (#423) 2024-09-17 10:47:17 -04:00
Lakshmi Kumar 69dead95cd va version bug fix for ub20 (#396) 2024-07-23 18:19:55 -04:00
Aryan Salmanpour d2ef14606c Fix a compilation issue in RHEL8 (#394) 2024-07-23 10:48:15 -04:00
jeffqjiangNew 1e5e9dacac AV1: Fixed build error on RHEL8 due to older VAAPI version. (#392)
* * rocDecode/AV1: Fixed build error on RHEL8 due to older VAAPI version.

* * rocDecode/AV1: Fixed build error on RHEL8 due to older VAAPI version.

* * rocDecode/AV1: Set VA profile for AV1 for older VAAPI versions where it is not defined.

* * rocDecode/AV1: Made rocDeocde AV1 built on VAAPI versions below 1.6.0 runnable with newer versions, to be able to test under RHEL8.
2024-07-22 12:29:41 -04:00
jeffqjiangNew ac82d17e9f * rocDecode/AV1: Added support for film grain synthesis and several other fixes. (#389)
- Added film grain parameter saving and loading procedures.
 - Added buffer management for film grain synthesis output.
 - Fixed the corruption issue with 10-bit film grain streams. We need to see surface attibutes based on pixel format when creating VAAPI surfaces.
 - Added missing global motion, loop filter and segmentation parameter loading in load reference frame procedure.
 - Fixed an issue with one tile streams.
 - Fixed an issue with un-initialized frame header structure after frame decode.
 - Fixed a bug with decode buffer status update.
2024-07-19 21:01:36 -04:00
Lakshmi Kumar 4f8506daec RHEL - va version check for av1 (#365)
* rhel va version check for av1

* remove #else case
2024-06-10 11:09:29 -04:00
Lakshmi Kumar c70e98abb6 AV1: VA-API submission (#362)
* av1 va-api submission

* adding check for anchor_frames and current_diplay_picture

* check limits for memory errors

* review comment - remove unnecessary check
2024-06-05 16:23:47 -04:00
Aryan Salmanpour 04a19c0aa9 Add support for handling exceptions while using the std::filesystem::recursive_directory_iterator (#358)
* FAdd support for handling exceptions while using the filesystem::recursive_directory_iterator

* use a common namesapce
2024-05-29 16:32:51 -04:00
Aryan Salmanpour bdb08ab644 Fix compilation issues on distro without std::filesystem (#348) 2024-05-08 14:45:32 -04:00
Aryan Salmanpour 1943aad663 Fix compilation issues on RHEL8 and SLES15.5 related to using std::filesystem (#342) 2024-05-06 21:12:23 -04:00
jeffqjiangNew 3ade0f31ff * rocDecode: Removed the workaround for the previous non-blocking implementation of vaSyncSurface() in the driver, since the correct implementation has been put into the driver already. (#340) 2024-05-06 17:40:15 -04:00
jeffqjiangNewиAryan Salmanpour 21ae1d010a * rocDecode: Set the correct surface format for high bit depths. (#339)
- No functional changes as surface format does not affect the actual allocation of the VA surface in this call due to IHV specific implementation. The app still needs to set the format correctly.

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
2024-05-06 08:09:23 -04:00
Aryan Salmanpour f2d1ad75eb Use the correct offset when creating render nodes on each partition mode on MI300 (#310)
* Use the correct offset when creating render nodes on each partition mode on MI300

* Use the correct offset when creating render nodes on each partition mode on MI300

* code clean up
2024-04-09 18:17:02 -04:00
Aryan Salmanpour 30790842f1 Add support for various partition modes on MI300 (#302)
* Add support for various partition modes on MI300

* code clean up
2024-03-28 21:40:45 -04:00
Lakshmi Kumar 6265f675c1 av1 initial commit (#298) 2024-03-26 18:59:15 -04:00
Aryan Salmanpour 4d5497eec8 modify the condition of using visble_devices by making sure that the requsted device id is valid (#295) 2024-03-26 11:40:59 -04:00
Aryan Salmanpour f94422f722 code clean up - remove extra parentheses (#293) 2024-03-25 15:11:43 -04:00
Aryan Salmanpour cb4abfedec Add support for detecting visible devices before initializing va-api (#292) 2024-03-25 14:31:02 -04:00
jeffqjiangNew 00127f16f1 Implemented proper slice parameter buffer submission for multiple slice streams. (#226)
* * rocDecode: Implemented proper slice parameter buffer submission for multiple slice streams.
 - We were submitting single slice parameter buffer for multiple slice streams. This works for other APIs but not for VAAPI, which requires to send slice parameter buffer once per slice.
 - At step 1, all the multi-slice structures are fixed sized (256). Will make them dynamic in the next step.
 - With this change, all 135 HEVC conformance streams now pass.

* * rocDecode: Multiple slice change step 2: make the fixed size slice info structure lists dynamic.

* * rocDecode: Minor changes in comments. No functional changes.

* *rocDecode: Changed INIT_SLICE_PARAM_LIST_NUM from 256 back to 16. 256 was set during debug process.

* * rocDecode: Add suggest changes from code review.

* * rocDecode: Moved slice_params_buf_id_ initialization to class VaapiVideoDecoder declaration, as suggested by code review.
2024-02-09 15:09:49 -05:00
jeffqjiangNew 2576eb4390 * rocDecode: Set MI2xx(VCN2.6) HEVC max decode resolution to 7680x4320. (#228) 2024-02-08 10:54:07 -05:00
Aryan Salmanpour 730f3b76d4 Return ROCDEC_NOT_IMPLEMENTED for GetDecoderCaps API for future GPU (#224) 2024-02-06 16:18:02 -05:00
Aryan Salmanpour 15526253c7 Enhance logging error in rocDecode library - let the upper level class prints the correct error code string instead of integer code from lower levels (#223) 2024-02-06 13:35:41 -05:00
Aryan Salmanpour 38f50a1a10 rename roDecMapVideoFrame to rocDecoGetVideoFrame and some other minor code cleanups (#222) 2024-02-06 11:38:54 -05:00
Aryan Salmanpour 929123abff Fix the performance issue introduced after PR#192 (#220)
* Fix the performance issue introduced after PR#192

* Destroy the current interop memories before reconfiguration

* initialize the interop to 0 after unmapping a surface

* code clean up

* check the mapped device mem/ext mem to be valid before destrying them

* code cleanup - add some comments

* make changes based on the reviewer comments
2024-02-05 17:12:39 -05:00
Aryan Salmanpour e90a93eb4a use the error code of VA_STATUS_ERROR_TIMEDOUT to avoid build failure with older va headers (#211) 2024-01-30 13:33:53 -05:00
jeffqjiangNew a55b967f86 * rocDecode: Removed warning message about vaSyncSurface() time out error. (#209) 2024-01-29 14:21:21 -05:00
jeffqjiangNew 10e3f0aeec * rocDecode: Added back vaSyncSurface() to ExportSurface() call to guarantee decode completion. (#205)
- Needed to take care of time out case. Current implementation of vaSyncSurface() does not block indefinitely (contrary to VA-API spec), it returns VA_STATUS_ERROR_TIMEDOUT error when it blocks for a certain amount of time. Although time out can come from various reasons, we treat it as non-fatal and contiue waiting.
2024-01-26 11:48:30 -05:00
jeffqjiangNew cd6401750e Changed rocDecode API header variable naming to Google C++ style. (#196)
* * rocDecode: Changed rocDecode API header variable naming to Google C++ style.

* * rocDecode: Unified AVC/H264 naming to AVC. Minor naming changes on HEVC related names.

* * rocDecode: Minor comment fix based on code review.
2024-01-24 18:03:46 -05:00
jeffqjiangNew 426067898c AVC: Added decode picture callback from parser to decoder and VAAPI decode submission. (#190)
* * rocDecode/AVC: Added decode picture callback from parser to decoder and VAAPI decode submission.

* * rocDecode/AVC: Minor changes based on code review comments.

* * rocDecode/AVC: Removed a redundant line.

* * rocDecode/AVC: Condensed several lines based on code review feedback.
2024-01-23 17:30:29 -08:00
Lakshmi Kumar a65c52bc71 fixes crashes from vaSyncSurface call (#195) 2024-01-22 15:43:11 -08:00
Aryan Salmanpour f7997b716d Add support for rocDecGetErrorName for getting the rocDecStatus error string (#185)
* Add support for rocDecGetErrorName for getting the rocDecStatus error string

* Add description of the API
2024-01-17 14:00:54 -05:00
Aryan Salmanpour f7fce4d9b4 Print the vaapi error name string instead of the vaapi status integer for better clarity if a vaapi failure occurs (#182) 2024-01-17 11:06:34 -05:00
Aryan Salmanpour 1a77f3d1b0 Print the hip error name string instead of the hip status integer for better clarity of a hip failure occurs (#181) 2024-01-17 10:52:48 -05:00
Aryan Salmanpour b188989f3f Remove unnecessary device id check (#180) 2024-01-17 10:27:06 -05:00
Aryan Salmanpour fb953b4366 Add support to correctly detect the gfx name for gfx940/gfx941/gfx942 (#178) 2024-01-16 14:49:54 -05:00
Aryan Salmanpour 3d28911453 Remove unsupported GPUs (#175) 2024-01-15 10:50:34 -08:00
Aryan Salmanpour 28c00cb354 Add support for gfx1101 and gfx1102 (#165) 2024-01-10 14:17:04 -05:00
jeffqjiangNew 04fe74f390 * rocDecode: Updated Copyright message for 2024. (#160) 2024-01-09 20:47:16 -05:00