From 1fb8608d6f0b1acf0e34361c105533087a09c710 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 20 Dec 2023 19:51:59 +0000 Subject: gentoo auto-resync : 20:12:2023 - 19:51:59 --- media-libs/Manifest.gz | Bin 69114 -> 69108 bytes media-libs/mesa/Manifest | 3 +- ...-d3d12-Fix-AV1-video-encode-32-bits-build.patch | 277 +++++++++++++++++++++ media-libs/mesa/mesa-23.3.1.ebuild | 4 + 4 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 media-libs/mesa/files/23.3.1-d3d12-Fix-AV1-video-encode-32-bits-build.patch (limited to 'media-libs') diff --git a/media-libs/Manifest.gz b/media-libs/Manifest.gz index 751151d83ed9..44067b6310aa 100644 Binary files a/media-libs/Manifest.gz and b/media-libs/Manifest.gz differ diff --git a/media-libs/mesa/Manifest b/media-libs/mesa/Manifest index 4a2d613a0a9b..d4b5ca048531 100644 --- a/media-libs/mesa/Manifest +++ b/media-libs/mesa/Manifest @@ -1,3 +1,4 @@ +AUX 23.3.1-d3d12-Fix-AV1-video-encode-32-bits-build.patch 16178 BLAKE2B cf6597c0bc196303aa8f72def34d426e7dec12b5a5686b69605b7674b010e94c9150ee7b0f2face711a4ba2c26e7fdffd5a8efe20665135dc285725b3e570746 SHA512 292e8556d081c297d8643bc3a29c5fc81fcf8f35e9f1d0c534589ea17e6eb8e02d3a3ca47df2d312ceff7e18d8862f1a1154691e6b03618c8770c012e9fe2063 AUX clang_config_tool.patch 368 BLAKE2B 968d3b441134d196b436ceabcdff8865ef584e97da52b2b9f78f2e79d671f4e017025fbf098ba6fa9b5837fda3549b5e992089163a0bdc76a3347d5a1633cc4d SHA512 c9f7a126b56dff3ae514f91479ce071078259871b1e864295b7631266899ae17f2f355ab56c8d3933b74ffe1e762fc6ffbf93b48b0f2ad0c05858e7c69902b02 AUX clang_resource_dir.patch 1129 BLAKE2B 40cf2bc3381d5318c95d3fdadef1bdb6bb57f3b04270e07c0a66613b6432ad617be73d34122be3280d861dde0663fc5c96bb37a9312c2e333e39e69287a9e33a SHA512 493585cf0a93fda04d4577095ae04e1c3dc37aa446ea0873e81857cd2f2c6519bbdf34f0d6e6dd47dd1e927cc776f46901ebab14c7040a92688c3868204b3856 DIST mesa-23.1.8.tar.xz 18566724 BLAKE2B 43825c936f0dca4bc7e954cf7f8afc9566fb26d23969a9f60279a279504464b4eee966f5db34602489fb659942d11629675a1ef44493020925047bbd8cd7f0d7 SHA512 02dc6f8b10dd3827a2b62fba3035726b1b60ec0c3188817deea2ad14f80f332a37272e9f15c5f653f20cecb14f8ff91697d73c89afc83674c19b686a674b677d @@ -11,6 +12,6 @@ EBUILD mesa-23.1.9.ebuild 12814 BLAKE2B be91b87fc3e8bfdb902ca4f97c49634f007f4903 EBUILD mesa-23.2.1.ebuild 12737 BLAKE2B bcefc24afc899b307011087efe947a7e24f450c18536607c722c639f00dc36e3d92c7e55a7eee63e8d8dab4e2a95c1dc9600b611fd82d84af69afb27f2560bd4 SHA512 66a34033497e839bdb1d122092adb5c1639ac969145cd06ce2a8120934e5633af5994c0f8eb606dfb0c6ddfa417e90cfcc71926f57003c0aa3e7d054e5d4b043 EBUILD mesa-23.3.0.ebuild 12195 BLAKE2B 9f6aaf3b275abff4040e7d0b5815cf6e6a71e45422997fdc97cae42cdddbb06215e8e79d85b9144e174ab4fac4eeeb45838ae2596dbb37b360c441d725edee0d SHA512 23ad87482773e4f3674338e8de3ea9154a3038cf161ec81c5ea6eaef7000b00cdf3b011964002de3c974beda3576b1f60ee5fd450bdfa417723ce3d83c751e7a EBUILD mesa-23.3.0_rc5-r1.ebuild 12195 BLAKE2B 9f6aaf3b275abff4040e7d0b5815cf6e6a71e45422997fdc97cae42cdddbb06215e8e79d85b9144e174ab4fac4eeeb45838ae2596dbb37b360c441d725edee0d SHA512 23ad87482773e4f3674338e8de3ea9154a3038cf161ec81c5ea6eaef7000b00cdf3b011964002de3c974beda3576b1f60ee5fd450bdfa417723ce3d83c751e7a -EBUILD mesa-23.3.1.ebuild 12195 BLAKE2B 9f6aaf3b275abff4040e7d0b5815cf6e6a71e45422997fdc97cae42cdddbb06215e8e79d85b9144e174ab4fac4eeeb45838ae2596dbb37b360c441d725edee0d SHA512 23ad87482773e4f3674338e8de3ea9154a3038cf161ec81c5ea6eaef7000b00cdf3b011964002de3c974beda3576b1f60ee5fd450bdfa417723ce3d83c751e7a +EBUILD mesa-23.3.1.ebuild 12276 BLAKE2B 236d92282a93b0b957685d849fe0e3227ff4591f545bd4d2f5e9f49baef628ef70784121392e4345c1c3ae8ad7f33c09945c94df7a6ac57e186ff929748122b1 SHA512 64fac00e9d59fb47904a50924044fce4730132521a32c33bbfec689af72f38f27014d9d04a1ba030c1b5c86b0eff6b3e6723d00d7d4cffb6fcca1762506b28bd EBUILD mesa-9999.ebuild 12195 BLAKE2B 9f6aaf3b275abff4040e7d0b5815cf6e6a71e45422997fdc97cae42cdddbb06215e8e79d85b9144e174ab4fac4eeeb45838ae2596dbb37b360c441d725edee0d SHA512 23ad87482773e4f3674338e8de3ea9154a3038cf161ec81c5ea6eaef7000b00cdf3b011964002de3c974beda3576b1f60ee5fd450bdfa417723ce3d83c751e7a MISC metadata.xml 1435 BLAKE2B 53690878512b86ce0b8dce38b083684c85ad5c1a655d5a69cb3265e156869845263eb16f271691b66c9f0cd76e97b56908acf7a1792d6abac0ec99447826cbb5 SHA512 842106e5d6eb60ff33c8cae7f0d52983c4f7e104152718b50fc790cbcb2506551a6fc7841fe8e3c7963850c238f77505b0e49b10a3a936baf459e1acaf73e07f diff --git a/media-libs/mesa/files/23.3.1-d3d12-Fix-AV1-video-encode-32-bits-build.patch b/media-libs/mesa/files/23.3.1-d3d12-Fix-AV1-video-encode-32-bits-build.patch new file mode 100644 index 000000000000..981d10dac178 --- /dev/null +++ b/media-libs/mesa/files/23.3.1-d3d12-Fix-AV1-video-encode-32-bits-build.patch @@ -0,0 +1,277 @@ +https://bugs.gentoo.org/920288 +https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26777 + +From 070563c4b61dfe56cde0508e0adf9d585c220a49 Mon Sep 17 00:00:00 2001 +From: Sil Vilerino +Date: Wed, 6 Dec 2023 20:09:44 -0500 +Subject: [PATCH] d3d12: Fix AV1 video encode 32 bits build + +Reviewed-by: Jesse Natalie +Part-of: +(cherry picked from commit 096e17b57832e96e36fc27f70e7a0e5ccbb0ac8a) +--- + .../drivers/d3d12/d3d12_video_enc_av1.cpp | 58 +++++++++---------- + ...12_video_encoder_bitstream_builder_av1.cpp | 10 ++-- + ...2_video_encoder_references_manager_av1.cpp | 2 +- + 3 files changed, 35 insertions(+), 35 deletions(-) + +diff --git a/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp b/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp +index 2c1964aa274..a5e2a2e3d39 100644 +--- a/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp ++++ b/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp +@@ -2189,7 +2189,7 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + writtenTemporalDelimBytes // Bytes Written AFTER placingPositionStart arg above + ); + assert(pD3D12Enc->m_BitstreamHeadersBuffer.size() == writtenTemporalDelimBytes); +- debug_printf("Written OBU_TEMPORAL_DELIMITER bytes: %" PRIu64 "\n", writtenTemporalDelimBytes); ++ debug_printf("Written OBU_TEMPORAL_DELIMITER bytes: %" PRIu64 "\n", static_cast(writtenTemporalDelimBytes)); + } + + size_t writtenSequenceBytes = 0; +@@ -2208,7 +2208,7 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + writtenSequenceBytes // Bytes Written AFTER placingPositionStart arg above + ); + assert(pD3D12Enc->m_BitstreamHeadersBuffer.size() == (writtenSequenceBytes + writtenTemporalDelimBytes)); +- debug_printf("Written OBU_SEQUENCE_HEADER bytes: %" PRIu64 "\n", writtenSequenceBytes); ++ debug_printf("Written OBU_SEQUENCE_HEADER bytes: %" PRIu64 "\n", static_cast(writtenSequenceBytes)); + } + + // Only supported bitstream format is with obu_size for now. +@@ -2254,14 +2254,14 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + writtenFrameBytes // Bytes Written AFTER placingPositionStart arg above + ); + +- debug_printf("Written OBU_FRAME bytes: %" PRIu64 "\n", writtenFrameBytes); ++ debug_printf("Written OBU_FRAME bytes: %" PRIu64 "\n", static_cast(writtenFrameBytes)); + + assert(pD3D12Enc->m_BitstreamHeadersBuffer.size() == + (writtenSequenceBytes + writtenTemporalDelimBytes + writtenFrameBytes)); + + debug_printf("Uploading %" PRIu64 + " bytes from OBU sequence and/or picture headers to comp_bit_destination %p at offset 0\n", +- pD3D12Enc->m_BitstreamHeadersBuffer.size(), ++ static_cast(pD3D12Enc->m_BitstreamHeadersBuffer.size()), + associatedMetadata.comp_bit_destination); + + // Upload headers to the finalized compressed bitstream buffer +@@ -2330,13 +2330,13 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + writtenFrameBytes // Bytes Written AFTER placingPositionStart arg above + ); + +- debug_printf("Written OBU_FRAME_HEADER bytes: %" PRIu64 "\n", writtenFrameBytes); ++ debug_printf("Written OBU_FRAME_HEADER bytes: %" PRIu64 "\n", static_cast(writtenFrameBytes)); + + assert(pD3D12Enc->m_BitstreamHeadersBuffer.size() == + (writtenSequenceBytes + writtenTemporalDelimBytes + writtenFrameBytes)); + + debug_printf("Uploading %" PRIu64 " bytes from OBU headers to comp_bit_destination %p at offset 0\n", +- pD3D12Enc->m_BitstreamHeadersBuffer.size(), ++ static_cast(pD3D12Enc->m_BitstreamHeadersBuffer.size()), + associatedMetadata.comp_bit_destination); + + // Upload headers to the finalized compressed bitstream buffer +@@ -2361,7 +2361,7 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + debug_printf("Uploading tile group %d to comp_bit_destination %p at offset %" PRIu64 "\n", + tg_idx, + associatedMetadata.comp_bit_destination, +- comp_bitstream_offset); ++ static_cast(comp_bitstream_offset)); + + size_t tile_group_obu_size = 0; + size_t decode_tile_elements_size = 0; +@@ -2387,9 +2387,9 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + + debug_printf("Written %" PRIu64 " bytes for OBU_TILE_GROUP open_bitstream_unit() prefix with obu_header() and " + "obu_size to staging_bitstream_buffer %p at offset %" PRIu64 "\n", +- writtenTileObuPrefixBytes, ++ static_cast(writtenTileObuPrefixBytes), + associatedMetadata.m_StagingBitstreamConstruction.data(), +- staging_bitstream_buffer_offset); ++ static_cast(staging_bitstream_buffer_offset)); + + writtenTileBytes += writtenTileObuPrefixBytes; + +@@ -2404,10 +2404,10 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + + debug_printf("Uploading %" PRIu64 " bytes for OBU_TILE_GROUP open_bitstream_unit() prefix with obu_header() " + "and obu_size: %" PRIu64 " to comp_bit_destination %p at offset %" PRIu64 "\n", +- writtenTileObuPrefixBytes, +- tile_group_obu_size, ++ static_cast(writtenTileObuPrefixBytes), ++ static_cast(tile_group_obu_size), + associatedMetadata.comp_bit_destination, +- comp_bitstream_offset); ++ static_cast(comp_bitstream_offset)); + + staging_bitstream_buffer_offset += writtenTileObuPrefixBytes; + +@@ -2517,7 +2517,7 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + // Add current pending frame being processed in the loop + extra_show_existing_frame_payload_bytes += writtenTemporalDelimBytes; + +- debug_printf("Written OBU_TEMPORAL_DELIMITER bytes: %" PRIu64 "\n", writtenTemporalDelimBytes); ++ debug_printf("Written OBU_TEMPORAL_DELIMITER bytes: %" PRIu64 "\n", static_cast(writtenTemporalDelimBytes)); + + size_t writtenShowExistingFrameBytes = 0; + av1_pic_header_t showExistingPicHdr = {}; +@@ -2561,7 +2561,7 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc + "in current frame ref_frame_idx[%" PRIu32 "]) bytes: %" PRIu64 "\n", + *pendingFrameIt /*PictureIndex*/, + showExistingPicHdr.frame_to_show_map_idx, +- writtenShowExistingFrameBytes); ++ static_cast(writtenShowExistingFrameBytes)); + + // Remove it from the list of pending frames + pendingFrameIt = +@@ -2628,7 +2628,7 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, + tileGroup.tg_start, + tileGroup.tg_end, + comp_bit_destination, +- comp_bit_destination_offset); ++ static_cast(comp_bit_destination_offset)); + + debug_printf("[Tile group start %d to end %d] Using staging_bitstream_buffer %p at offset %" PRIu64 + " to write the tile_obu_group() prefix syntax: tile_start_and_end_present_flag, tg_start, tg_end and " +@@ -2636,7 +2636,7 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, + tileGroup.tg_start, + tileGroup.tg_end, + staging_bitstream_buffer.data(), +- staging_bitstream_buffer_offset); ++ static_cast(staging_bitstream_buffer_offset)); + + // Reserve space upfront in the scratch storage + // Do not modify anything before staging_bitstream_buffer_offset +@@ -2673,9 +2673,9 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, + " for tile_obu_group() prefix syntax: tile_start_and_end_present_flag, tg_start, tg_end\n", + tileGroup.tg_start, + tileGroup.tg_end, +- bitstream_tile_group_obu_bytes, ++ static_cast(bitstream_tile_group_obu_bytes), + staging_bitstream_buffer.data(), +- staging_bitstream_buffer_offset); ++ static_cast(staging_bitstream_buffer_offset)); + + + // Save this to compare the final written destination byte size against the expected tile_group_obu_size +@@ -2699,11 +2699,11 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, + " to comp_bit_destination %p at offset %" PRIu64 "\n", + tileGroup.tg_start, + tileGroup.tg_end, +- bitstream_tile_group_obu_bytes, ++ static_cast(bitstream_tile_group_obu_bytes), + staging_bitstream_buffer.data(), +- staging_bitstream_buffer_offset, ++ static_cast(staging_bitstream_buffer_offset), + comp_bit_destination, +- comp_bit_destination_offset); ++ static_cast(comp_bit_destination_offset)); + + comp_bit_destination_offset += bitstream_tile_group_obu_bytes; + written_bytes_to_staging_bitstream_buffer += bitstream_tile_group_obu_bytes; +@@ -2729,9 +2729,9 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, + tileGroup.tg_start, + tileGroup.tg_end, + TileIdx, +- TileSizeBytes, ++ static_cast(TileSizeBytes), + staging_bitstream_buffer.data(), +- (written_bytes_to_staging_bitstream_buffer + staging_bitstream_buffer_offset)); ++ static_cast(written_bytes_to_staging_bitstream_buffer + staging_bitstream_buffer_offset)); + + // Upload current tile_size_minus_1 + // Note: The buffer_subdata is queued in pD3D12Enc->base.context but doesn't execute immediately +@@ -2751,11 +2751,11 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, + tileGroup.tg_start, + tileGroup.tg_end, + TileIdx, +- TileSizeBytes, ++ static_cast(TileSizeBytes), + staging_bitstream_buffer.data(), +- (written_bytes_to_staging_bitstream_buffer + staging_bitstream_buffer_offset), ++ static_cast(written_bytes_to_staging_bitstream_buffer + staging_bitstream_buffer_offset), + comp_bit_destination, +- comp_bit_destination_offset); ++ static_cast(comp_bit_destination_offset)); + + comp_bit_destination_offset += TileSizeBytes; + written_bytes_to_staging_bitstream_buffer += TileSizeBytes; +@@ -2788,11 +2788,11 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, + tileGroup.tg_start, + tileGroup.tg_end, + TileIdx, +- tile_size, ++ static_cast(tile_size), + src_driver_bitstream, +- src_buf_tile_position, ++ static_cast(src_buf_tile_position), + comp_bit_destination, +- comp_bit_destination_offset); ++ static_cast(comp_bit_destination_offset)); + + comp_bit_destination_offset += tile_size; + } +diff --git a/src/gallium/drivers/d3d12/d3d12_video_encoder_bitstream_builder_av1.cpp b/src/gallium/drivers/d3d12/d3d12_video_encoder_bitstream_builder_av1.cpp +index 25550a2b4fb..96b7e32eb8e 100644 +--- a/src/gallium/drivers/d3d12/d3d12_video_encoder_bitstream_builder_av1.cpp ++++ b/src/gallium/drivers/d3d12/d3d12_video_encoder_bitstream_builder_av1.cpp +@@ -153,7 +153,7 @@ d3d12_video_bitstream_builder_av1::write_temporal_delimiter_obu(std::vector(bitstream_seq.get_byte_count()); ++ const uint64_t obu_size_in_bytes = bitstream_seq.get_byte_count(); + debug_printf("obu_size: %" PRIu64 "\n", obu_size_in_bytes); + pack_obu_header_size(&bitstream_full_obu, obu_size_in_bytes); + +@@ -802,7 +802,7 @@ d3d12_video_bitstream_builder_av1::write_frame_header(const av1_seq_header_t *pS + debug_printf("frame_header_obu() bytes (without OBU_FRAME nor OBU_FRAME_HEADER alignment padding): %" PRId32 "\n", + bitstream_pic.get_byte_count()); // May be bit unaligned at this point (see padding below) + debug_printf("extra_obu_size_bytes (ie. tile_group_obu_size if writing OBU_FRAME ): %" PRIu64 "\n", +- extra_obu_size_bytes); ++ static_cast(extra_obu_size_bytes)); + + // Write the obu_header + constexpr uint32_t obu_extension_flag = 0; +@@ -825,7 +825,7 @@ d3d12_video_bitstream_builder_av1::write_frame_header(const av1_seq_header_t *pS + bitstream_pic.flush(); + + // Write the obu_size element +- const size_t obu_size_in_bytes = bitstream_pic.get_byte_count() + extra_obu_size_bytes; ++ const uint64_t obu_size_in_bytes = bitstream_pic.get_byte_count() + extra_obu_size_bytes; + debug_printf("obu_size: %" PRIu64 "\n", obu_size_in_bytes); + pack_obu_header_size(&bitstream_full_obu, obu_size_in_bytes); + +@@ -913,7 +913,7 @@ d3d12_video_bitstream_builder_av1::write_obu_tile_group_header(size_t tile_group + + // Write the obu_size element + pack_obu_header_size(&bitstream_full_obu, tile_group_obu_size); +- debug_printf("obu_size: %" PRIu64 "\n", tile_group_obu_size); ++ debug_printf("obu_size: %" PRIu64 "\n", static_cast(tile_group_obu_size)); + + bitstream_full_obu.flush(); + +diff --git a/src/gallium/drivers/d3d12/d3d12_video_encoder_references_manager_av1.cpp b/src/gallium/drivers/d3d12/d3d12_video_encoder_references_manager_av1.cpp +index 49892338984..2f4bcf0e1eb 100644 +--- a/src/gallium/drivers/d3d12/d3d12_video_encoder_references_manager_av1.cpp ++++ b/src/gallium/drivers/d3d12/d3d12_video_encoder_references_manager_av1.cpp +@@ -213,7 +213,7 @@ d3d12_video_encoder_references_manager_av1::print_virtual_dpb_entries() + "Number of DPB virtual entries is %" PRIu64 " entries for frame with OrderHint " + "%d (PictureIndex %d) are: \n%s \n", + m_PhysicalAllocationsStorage.get_number_of_pics_in_dpb(), +- m_CurrentFrameReferencesData.pVirtualDPBEntries.size(), ++ static_cast(m_CurrentFrameReferencesData.pVirtualDPBEntries.size()), + m_CurrentFramePicParams.OrderHint, + m_CurrentFramePicParams.PictureIndex, + dpbContents.c_str()); +-- +2.41.0 + diff --git a/media-libs/mesa/mesa-23.3.1.ebuild b/media-libs/mesa/mesa-23.3.1.ebuild index 2ae05a550bd6..175ac80b1fb9 100644 --- a/media-libs/mesa/mesa-23.3.1.ebuild +++ b/media-libs/mesa/mesa-23.3.1.ebuild @@ -185,6 +185,10 @@ x86? ( usr/lib/libGLX_mesa.so.0.0.0 )" +PATCHES=( + "${FILESDIR}"/${PV}-d3d12-Fix-AV1-video-encode-32-bits-build.patch +) + llvm_check_deps() { if use opencl; then has_version "sys-devel/clang:${LLVM_SLOT}[${LLVM_USE_DEPS}]" || return 1 -- cgit v1.2.3