Bagikan melalui


enumerasi D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE (d3d12umddi.h)

Jenis operasi salin yang akan dilakukan.

Sintaks

typedef enum D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE,
  D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE
} ;

Konstanta

 
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE
Salin struktur akselerasi sambil memperbaiki pointer referensial mandiri yang mungkin ada, sehingga tujuannya adalah kecocokan mandiri untuk sumbernya. Setiap pointer eksternal ke struktur akselerasi lainnya tetap tidak berubah dari sumber ke tujuan dalam salinan. Ukuran tujuan identik dengan ukuran sumber.

Memori sumber dan tujuan harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT
Mirip dengan mode kloning, menghasilkan struktur akselerasi yang setara secara fungsional dengan sumber di tujuan. Mode ringkas juga sesuai dengan tujuan ke dalam jejak memori yang berpotensi lebih kecil. Ukuran yang diperlukan untuk tujuan dapat diambil sebelumnya dari EmitRaytracingAccelerationStructurePostBuildInfo.

Mode ini hanya valid jika struktur akselerasi sumber awalnya dibangun dengan bendera D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION enumerasi D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS , jika tidak, hasilnya tidak terdefinisi.

Memori sumber dan tujuan harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS
Tujuan mengambil setelah tata letak yang dijelaskan dalam D3D12DDI_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER_0054. Ukuran yang diperlukan untuk tujuan dapat diambil sebelumnya dari EmitRaytracingAccelerationStructurePostBuildInfo.

Mode ini ditujukan untuk alat seperti PIX di Windows saja, meskipun tidak ada yang menghentikan aplikasi apa pun menggunakannya. Output pada dasarnya adalah inversi dari build struktur akselerasi.

Untuk struktur akselerasi tingkat atas, output mencakup serangkaian deskripsi instans yang identik dengan data yang digunakan dalam build asli dan dalam urutan yang sama.

Untuk struktur akselerasi tingkat bawah, output mencakup serangkaian deskripsi geometri yang kira-kira cocok dengan data yang digunakan dalam build asli. Output hanya kecocokan kasar untuk yang asli sebagian karena toleransi yang diizinkan dalam spesifikasi untuk struktur akselerasi, dan sebagian karena melaporkan struktur yang sama persis seperti yang dikodekan secara konseptual mungkin tidak sederhana.

AABB (kotak pembatas selaras sumbu) yang dikembalikan untuk primitif prosedural, misalnya, bisa lebih konservatif (misalnya lebih besar) dalam volume dan bahkan berbeda dalam jumlah daripada yang sebenarnya dalam representasi struktur akselerasi, karena mungkin tidak bersih untuk mengekspos representasi yang tepat.

Geometri, masing-masing dengan deskripsi geometrinya sendiri, harus muncul dalam urutan yang sama seperti dalam build asli, karena perhitungan pengindeksan tabel shader tergantung pada ini.

Struktur keseluruhan dengan ini cukup untuk alat seperti PIX di Windows untuk dapat memberi aplikasi rasa visual struktur akselerasi driver yang terbuat dari input aplikasi. Visualisasi dapat membantu mengungkapkan bug driver dalam struktur akselerasi jika apa yang ditampilkan sangat tidak cocok dengan data yang digunakan aplikasi untuk membuat struktur akselerasi, di luar toleransi yang diizinkan.

Memori sumber harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE. Memori tujuan harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_UNORDERED_ACCESS.

Mode ini hanya diizinkan ketika mode pengembang diaktifkan pada OS.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE
Tujuan mengambil tata letak dan ukuran yang dijelaskan dalam D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC_0054, melalui EmitRaytracingAccelerationStructurePostBuildInfo.

Ini menserialisasikan struktur akselerasi sehingga alat seperti PIX di Windows dapat menyimpan ke file untuk diputar nanti, melalui deserialisasi. Meskipun ditujukan untuk alat seperti PIX untuk Windows, tidak ada yang menghentikan aplikasi apa pun menggunakan ini.

Memori sumber harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE. Memori tujuan harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_UNORDERED_ACCESS.

Saat menserialisasikan struktur akselerasi tingkat atas, struktur akselerasi tingkat bawah yang diacunya tidak harus tetap ada atau utuh dalam memori. Demikian juga, struktur akselerasi tingkat bawah dapat diserialisasikan terlepas dari apakah ada struktur akselerasi tingkat atas yang menunjuk ke sana. Mengatakan cara lain, urutan serialisasi struktur akselerasi tidak masalah.
D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE
Sumber harus merupakan struktur akselerasi berseri, dengan penunjuk apa pun, langsung setelah header, diperbaiki untuk menunjuk ke lokasi baru mereka, seperti yang dibahas dalam struktur D3D12DDI_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC_0054 .

Tujuan mendapatkan struktur akselerasi yang secara fungsional setara dengan struktur akselerasi yang awalnya diserialisasikan. Tidak masalah urutan struktur akselerasi tingkat atas dan bawah, yang mengacu pada tingkat atas, dideserialisasi, selama pada saat struktur akselerasi tingkat atas digunakan untuk raytracing atau pembaruan struktur akselerasi yang dirujuk struktur akselerasi tingkat bawah ada.

Deserialisasi hanya berfungsi pada perangkat dan versi driver yang sama jika tidak, hasilnya tidak terdefinisi. Ini tidak dimaksudkan untuk digunakan untuk struktur akselerasi penembolokan, karena menjalankan build struktur akselerasi penuh kemungkinan akan lebih cepat daripada memuatnya dari disk.
Meskipun ditujukan untuk alat seperti PIX untuk Windows, tidak ada yang menghentikan aplikasi apa pun menggunakan ini, meskipun setidaknya untuk saat ini deserialisasi mengharuskan OS berada dalam mode pengembang.

Memori sumber harus dalam status sumber daya D3D12DDI_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE.
Memori tujuan harus dalam status D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, version 1809
Header d3d12umddi.h