Module: Mesa Branch: main Commit: 096e17b57832e96e36fc27f70e7a0e5ccbb0ac8a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=096e17b57832e96e36fc27f70e7a0e5ccbb0ac8a
Author: Sil Vilerino <[email protected]> Date: Wed Dec 6 20:09:44 2023 -0500 d3d12: Fix AV1 video encode 32 bits build Reviewed-by: Jesse Natalie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26573> --- src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp | 58 +++++++++++----------- .../d3d12_video_encoder_bitstream_builder_av1.cpp | 10 ++-- .../d3d12_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 afaca3e2238..f1df21e2808 100644 --- a/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp +++ b/src/gallium/drivers/d3d12/d3d12_video_enc_av1.cpp @@ -2235,7 +2235,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<uint64_t>(writtenTemporalDelimBytes)); associatedMetadata.pWrittenCodecUnitsSizes.push_back(writtenTemporalDelimBytes); } @@ -2256,7 +2256,7 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc ); associatedMetadata.pWrittenCodecUnitsSizes.push_back(writtenSequenceBytes); 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<uint64_t>(writtenSequenceBytes)); } // Only supported bitstream format is with obu_size for now. @@ -2302,7 +2302,7 @@ 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<uint64_t>(writtenFrameBytes)); associatedMetadata.pWrittenCodecUnitsSizes.push_back(writtenFrameBytes); assert(pD3D12Enc->m_BitstreamHeadersBuffer.size() == @@ -2310,7 +2310,7 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc 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<uint64_t>(pD3D12Enc->m_BitstreamHeadersBuffer.size()), associatedMetadata.comp_bit_destination); // Upload headers to the finalized compressed bitstream buffer @@ -2381,13 +2381,13 @@ d3d12_video_encoder_build_post_encode_codec_bitstream_av1(struct d3d12_video_enc ); associatedMetadata.pWrittenCodecUnitsSizes.push_back(writtenFrameBytes); - debug_printf("Written OBU_FRAME_HEADER bytes: %" PRIu64 "\n", writtenFrameBytes); + debug_printf("Written OBU_FRAME_HEADER bytes: %" PRIu64 "\n", static_cast<uint64_t>(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<uint64_t>(pD3D12Enc->m_BitstreamHeadersBuffer.size()), associatedMetadata.comp_bit_destination); // Upload headers to the finalized compressed bitstream buffer @@ -2412,7 +2412,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<uint64_t>(comp_bitstream_offset)); size_t tile_group_obu_size = 0; size_t decode_tile_elements_size = 0; @@ -2438,9 +2438,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<uint64_t>(writtenTileObuPrefixBytes), associatedMetadata.m_StagingBitstreamConstruction.data(), - staging_bitstream_buffer_offset); + static_cast<uint64_t>(staging_bitstream_buffer_offset)); writtenTileBytes += writtenTileObuPrefixBytes; associatedMetadata.pWrittenCodecUnitsSizes.push_back(writtenTileObuPrefixBytes); @@ -2456,10 +2456,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<uint64_t>(writtenTileObuPrefixBytes), + static_cast<uint64_t>(tile_group_obu_size), associatedMetadata.comp_bit_destination, - comp_bitstream_offset); + static_cast<uint64_t>(comp_bitstream_offset)); staging_bitstream_buffer_offset += writtenTileObuPrefixBytes; @@ -2571,7 +2571,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<uint64_t>(writtenTemporalDelimBytes)); size_t writtenShowExistingFrameBytes = 0; av1_pic_header_t showExistingPicHdr = {}; @@ -2617,7 +2617,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<uint64_t>(writtenShowExistingFrameBytes)); // Remove it from the list of pending frames pendingFrameIt = @@ -2689,7 +2689,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<uint64_t>(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 " @@ -2697,7 +2697,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<uint64_t>(staging_bitstream_buffer_offset)); // Reserve space upfront in the scratch storage // Do not modify anything before staging_bitstream_buffer_offset @@ -2734,9 +2734,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<uint64_t>(bitstream_tile_group_obu_bytes), staging_bitstream_buffer.data(), - staging_bitstream_buffer_offset); + static_cast<uint64_t>(staging_bitstream_buffer_offset)); // Save this to compare the final written destination byte size against the expected tile_group_obu_size @@ -2760,11 +2760,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<uint64_t>(bitstream_tile_group_obu_bytes), staging_bitstream_buffer.data(), - staging_bitstream_buffer_offset, + static_cast<uint64_t>(staging_bitstream_buffer_offset), comp_bit_destination, - comp_bit_destination_offset); + static_cast<uint64_t>(comp_bit_destination_offset)); comp_bit_destination_offset += bitstream_tile_group_obu_bytes; written_bytes_to_staging_bitstream_buffer += bitstream_tile_group_obu_bytes; @@ -2790,9 +2790,9 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, tileGroup.tg_start, tileGroup.tg_end, TileIdx, - TileSizeBytes, + static_cast<uint64_t>(TileSizeBytes), staging_bitstream_buffer.data(), - (written_bytes_to_staging_bitstream_buffer + staging_bitstream_buffer_offset)); + static_cast<uint64_t>(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 @@ -2812,11 +2812,11 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, tileGroup.tg_start, tileGroup.tg_end, TileIdx, - TileSizeBytes, + static_cast<uint64_t>(TileSizeBytes), staging_bitstream_buffer.data(), - (written_bytes_to_staging_bitstream_buffer + staging_bitstream_buffer_offset), + static_cast<uint64_t>(written_bytes_to_staging_bitstream_buffer + staging_bitstream_buffer_offset), comp_bit_destination, - comp_bit_destination_offset); + static_cast<uint64_t>(comp_bit_destination_offset)); comp_bit_destination_offset += TileSizeBytes; written_bytes_to_staging_bitstream_buffer += TileSizeBytes; @@ -2849,11 +2849,11 @@ upload_tile_group_obu(struct d3d12_video_encoder *pD3D12Enc, tileGroup.tg_start, tileGroup.tg_end, TileIdx, - tile_size, + static_cast<uint64_t>(tile_size), src_driver_bitstream, - src_buf_tile_position, + static_cast<uint64_t>(src_buf_tile_position), comp_bit_destination, - comp_bit_destination_offset); + static_cast<uint64_t>(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<uint write_obu_header(&bitstream_full_obu, OBU_TEMPORAL_DELIMITER, obu_extension_flag, temporal_id, spatial_id); // Write the data size - const size_t obu_size_in_bytes = 0; + const uint64_t obu_size_in_bytes = 0; debug_printf("obu_size: %" PRIu64 " (temporal_delimiter_obu() has empty payload as per AV1 codec spec)\n", obu_size_in_bytes); pack_obu_header_size(&bitstream_full_obu, obu_size_in_bytes); @@ -197,7 +197,7 @@ d3d12_video_bitstream_builder_av1::write_sequence_header(const av1_seq_header_t write_obu_header(&bitstream_full_obu, OBU_SEQUENCE_HEADER, obu_extension_flag, temporal_id, spatial_id); // Write the data size - const size_t obu_size_in_bytes = static_cast<size_t>(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<uint64_t>(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<uint64_t>(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 54e64a15a9f..d3cc3ca0f3f 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<uint64_t>(m_CurrentFrameReferencesData.pVirtualDPBEntries.size()), m_CurrentFramePicParams.OrderHint, m_CurrentFramePicParams.PictureIndex, dpbContents.c_str());
