Граф коммитов

39 Коммитов

Автор SHA1 Сообщение Дата
Aryan Salmanpour 0415c78cbf Code cleanup (#149) 2025-05-12 16:15:33 -04:00
Aryan Salmanpour 664d2808ac Enable and fix compiler warnings (#136) 2025-03-20 11:53:42 -04:00
Aryan Salmanpour c27f1daf39 Utilize the explicit constructor of the vector's type when resizing the vector for the memory pool (#132) 2025-03-19 11:59:35 -04:00
Aryan Salmanpour 692d4bb72c Add support for multiple regions of interest (ROI) for batch JPEG decoding (#126) 2025-03-05 17:06:04 -05:00
Aryan Salmanpour 23a1d7e03c Eliminate the use of std::fs (#115) 2025-01-28 16:22:52 -05:00
Aryan Salmanpour 758aefbb29 query number of jpeg cores through amdgpu (#113) 2025-01-22 20:16:31 -05:00
Aryan Salmanpour 6fb149d1eb Optimize finding the compute partition mode (#111) 2025-01-18 10:12:45 -05:00
Aryan Salmanpour eb97d3517d code cleanup - remove unnecessary check (#109) 2025-01-15 20:31:07 -05:00
Aryan Salmanpour 9f41913587 code cleanup (#106) 2025-01-09 10:38:29 -05:00
Aryan Salmanpour de14139d09 Update copyright year to 2025 (#103) 2025-01-02 17:25:30 -05:00
Aryan Salmanpour 832cb88ccc Add support for mapping GPU UUIDs to render nodes (#101) 2024-12-20 15:17:20 -05:00
Aryan Salmanpour 916f6ac806 Fix a regression caused by PR#88 on MI300A (#99) 2024-12-11 15:03:56 -05:00
David Rosca d9b89264d5 Create surfaces with linear modifier (#88)
Mesa will be enabling tiling for all VA surfaces by default,
but HIP doesn't support modifiers for dmabuf import.
2024-12-09 16:27:40 -05:00
David Rosca c8cdda6be2 Use VA_FOURCC_YUY2 instead of YUYV (#92)
Mesa <= 24.3 incorrectly uses non-standard VA YUYV fourcc.
2024-12-05 11:25:51 -05:00
David Rosca ed919ec7d4 Don't use dummy surface for vaCreateContext (#87)
Mesa ignores this parameter.
2024-12-03 08:49:57 -05:00
Kiriti Gowda b414b5ed6c GPU Arch - Updates & Fixes (#72) 2024-11-07 15:13:48 -08:00
Aryan Salmanpour 6d31992746 use a single context for decoding (#68) 2024-10-30 11:48:47 -04:00
Aryan Salmanpour de144cd941 Exclude YUV 4:4:0 for RGB format conversion in VCN on MI300, as it is not supported. Instead, use HIP kernels. (#63) 2024-10-10 15:42:38 -04:00
Aryan Salmanpour ad90eb4582 Optimize the memory pool allocation bso that its size doesn't exceed the max_pool_size_ (#58) 2024-10-01 09:14:15 -04:00
Aryan Salmanpour 7b321a86ed Add support for ROI decode on MI300 (#53)
* Add support for ROI decode on MI300

* Add ROI decode support for batched decoding

* clean up

* clean up

* Fix a typo and update sample's readme
2024-08-22 17:04:03 -04:00
Aryan Salmanpour 7129a01f88 Modify the memory pool access for batch decode submission (#50) 2024-08-14 16:45:05 -04:00
Aryan Salmanpour 92d545f42b CMakeLists - updates and clean up (#46)
* CMakeLists - updates and clean up

* Update the vcn joeg spec table
2024-07-24 12:36:54 -04:00
Aryan Salmanpour 6d7d72c6da Update the MemoryPool by defining the max pool size, and use it when adding a new entry to the pool (#44)
* Update the MemoryPool by defining the max pool size, and use it when adding a new entry to the pool

* Fix finding the gfx942_mi300x
2024-07-19 19:04:31 -04:00
Aryan Salmanpour 3f0be8387e Add support for rocJpegDecodeBatched API - part 2 of 2 (#39)
* Modify the batchDecode submission

* Add support for grouping the jpeg streams based on their chroma_subsampling, width, and height

* Modify the RocJpegVappiMemPoolEntry to use vectors for va_surface_ids and hip_interops

* Add a function to get the current vcn jpeg spec

* Add support to get hip interop mem for the batched submission

* switch to std::mutext

* Updatet the rocJPEG version

* use std::find to find the surface_id

* correct the vcn_jpeg_spec_ table for gfx942-mi300a/mi300x

* Fix typos

* pass the decode_params to the SubmitDecode function
2024-07-12 15:20:38 -04:00
Aryan Salmanpour 03f8bd0fa1 update the vcn_jpeg_spec_ table (#38) 2024-07-08 09:32:01 -04:00
Aryan Salmanpour 6f5b8f35a5 use supported VA_FOURCC_* instead of the VA_RT_FORMAT_* for the internel mem_pool_ key entries (#36) 2024-07-04 15:15:50 -04:00
Aryan Salmanpour bd09811662 Fix a bug where the dcoded output is not updated (#35)
* Fix a bug where the dcoded output is not updated

* code clean up - remove redundant if check
2024-07-04 13:13:39 -04:00
Aryan Salmanpour d0b812bc26 Add support for YUV440 (#28)
* Add support for YUV440

* Add YUV440 to RGB kernels

* code clean up
2024-05-30 22:00:07 -04:00
Aryan Salmanpour b7edd5de5b Add support for handling exceptions while using the std::filesystem::recursive_directory_iterator (#27) 2024-05-30 09:08:35 -04:00
Aryan Salmanpour 73c0b10f6a Add/update comments to the code (#25)
* Add/update comments to the code

* update comments

* Update comments
2024-05-15 13:44:51 -04:00
Aryan Salmanpour 764ae2a348 Fix compilation issues on systems without std::filesystem (#23) 2024-05-08 15:57:19 -04:00
Aryan Salmanpour 694a4bc07f Add support for memory pool management for vaapi surfaces and vaapi-hip interops (#17)
* Add support for memory pool management for vaapi surfaces

* reuse memories for each channel if the sizes remain unchanged

* rename hip_interop to hip_interop_dev_mem
2024-04-22 14:37:45 -04:00
Aryan Salmanpour c591c342aa Add support for ROCJPEG_OUTPUT_RGB_PLANAR output format (#15)
* Add support for ROCJPEG_OUTPUT_RGB_PLANAR output format

* update the jpegdecode sample based on the review comments

* use make_float3 when it's possible
2024-04-16 18:27:22 -04:00
Aryan Salmanpour 63dc882415 Add support for HW-based RGB format conversion on MI300 (#13)
* Add support for HW-based RGB format conversion on MI300

* code clean up

* change variable names
2024-04-11 13:37:08 -04:00
Aryan Salmanpour 214187ce11 Use the correct offset when creating render nodes on each partition mode on MI300 (#11)
* Use the correct offset when creating render nodes on each partition mode on MI300

* code clean up
2024-04-09 20:28:57 -04:00
Aryan Salmanpour 363205c9a8 Add support for passing the correct device id when initializing the va-api decoder (#8) 2024-04-01 18:06:44 -04:00
Aryan Salmanpour 1844e3349c Add support for various partition modes for MI300 (#7) 2024-04-01 14:51:56 -04:00
Aryan Salmanpour e93199e3d8 Add support for detecting visible devices before initializing va-api (#4) 2024-03-27 14:14:27 -04:00
Aryan Salmanpour 6ad4a76177 Initial commit of the rocJPEG library (#1)
* rocJPEG initial commit

* Add gitignore file

* clean up

* code clean up

* CMakeLists update

* Update README

* Update readme and setup script

* add docs folder

* update rocjepg headers

* update the rocjepg header

* update the copyright year

* Add nullptr check for all APIs

* update the hip kernels execution

* follow google c++ style guide

* code clean up

* use google c++ style guide for hip kernels

* add support for rocJpegGetErrorName API

* Add ParseCommandLine function

* update the rocjpeg sample

* Update the readme, LIBVA instructions

* udate the rocJPEG script

* Update CMAKE and libdrm

* Add support for ROCJPEG_OUTPUT_UNCHANGED and SaveImage function

* code  clean up

* update the drm dependencies

* remove the unused hipstream

* code clean up

* add -fmt option for selection the output format

* update the GetImageInfo API

* update the sample

* update the save image function based onn the surface and putput format

* add new sample images

* Put hip interop mem into separate functions and some code clean up

* Add support for CopyLuma and CopyChroma

* Add support for the yuv output format for NV12 surface

* Update HIP kernels

* add support for rgbi format conversion for NV12 and YUv444

* Update the status

* Add support for converting YUYV to RGB

* Add support for unpacking YUYV format

* Fix unpacking Y fron YUYV hip kernel

* Add suppoort for extractign packed YUYV to YUV planar

* hip code clean up

* code clean up

* Update the headers

* code clean up

* change hip kernel names

* hip kernel clean up

* hip clean up

* code clean up

* code clean up

* code clean up

* code clean up

* code clean up

* code clean up for jpege decoder class

* code clean up

* code clean up

* code clean up

* code clean up

* update the dockers

* code clean up

* code clean up

* hip kernels clean up

* remove unused hip kernels

* add additional test cases

* update the APIs

* add new hip yuv400torgbi kernel

* update yuv400torgbi kernel

* restructure files

* code clean up

* code clean up

* add jenkins

* code clean up

* code clean up

* update readme

* update docker's README

* make changes based on the reviewers comments

* make changes based on the reviewers comments

* return ROCJPEG_STATUS_JPEG_NOT_SUPPORTED if the resolution of the jpeg is not supported for HW decoding
2024-03-25 17:05:31 -04:00