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());

Reply via email to