Bagikan melalui


enumerasi D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE (d3d12.h)

Menentukan jenis operasi salin yang dilakukan saat memanggil CopyRaytracingAccelerationStructure.

Sintaks

typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
  D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4
} ;

Konstanta

 
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE
Nilai: 0
Salin struktur akselerasi sambil memperbaiki penunjuk referensial mandiri yang mungkin ada sehingga tujuannya adalah salinan sumber yang mandiri. Setiap pointer eksternal ke struktur akselerasi lainnya tetap tidak berubah dari sumber ke tujuan dalam salinan. Ukuran tujuan identik dengan ukuran sumber.

D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT
Nilai: 0x1
Menghasilkan struktur akselerasi yang setara secara fungsional dengan sumber di tujuan, mirip dengan mode kloning, tetapi juga cocok dengan tujuan menjadi yang berpotensi lebih kecil, dan tentu saja tidak lebih besar, jejak memori. Ukuran yang diperlukan untuk tujuan dapat diambil sebelumnya dari EmitRaytracingAccelerationStructurePostbuildInfo.

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

Geometri yang memampatkan mengharuskan seluruh struktur akselerasi dibangun, itulah sebabnya Anda harus terlebih dahulu membangun dan kemudian memampatkan struktur.

D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS
Nilai: 0x2
Tujuan mengambil tata letak yang dijelaskan dalam D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER. Ukuran yang diperlukan untuk tujuan dapat diambil sebelumnya dari EmitRaytracingAccelerationStructurePostbuildInfo.

Mode ini hanya ditujukan untuk alat seperti PIX, meskipun tidak ada yang menghentikan aplikasi apa pun menggunakannya. Output pada dasarnya adalah inversi dari build struktur akselerasi. Struktur keseluruhan dengan ini cukup untuk alat/PIX untuk dapat memberi aplikasi beberapa pengertian visual dari 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.

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 kompleksitas pelaporan yang melekat pada struktur yang sama persis seperti yang dikodekan secara konseptual. Contohnya. kotak pembatas sejajar sumbu (AABB) yang dikembalikan untuk primitif prosedural bisa lebih konservatif (lebih besar) dalam volume dan bahkan berbeda jumlahnya daripada yang sebenarnya dalam representasi struktur akselerasi. Geometri, masing-masing dengan deskripsi geometrinya sendiri, muncul dalam urutan yang sama seperti dalam akselerasi asli, karena perhitungan pengindeksan tabel shader bergantung pada ini.


PENTING

Memori sumber harus dalam status D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE. Memori tujuan harus dalam status D3D12_RESOURCE_STATE_UNORDERED_ACCESS.

Mode ini hanya diizinkan ketika mode pengembang diaktifkan di OS.

D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE
Nilai: 0x3
Tujuan mengambil tata letak dan ukuran yang dijelaskan dalam dokumentasi untuk D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC, itu sendiri struktur yang dihasilkan dengan panggilan ke EmitRaytracingAccelerationStructurePostbuildInfo.

Mode ini menserialisasikan struktur akselerasi sehingga aplikasi atau alat dapat menyimpannya ke file untuk digunakan kembali nanti, biasanya pada instans perangkat yang berbeda, melalui deserialisasi.

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. Dengan kata lain, urutan serialisasi struktur akselerasi tidak masalah.

D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE
Nilai: 0x4
Sumbernya harus merupakan struktur akselerasi berseri, dengan penunjuk apa pun, langsung setelah header, diperbaiki untuk menunjuk ke lokasi baru mereka. Untuk informasi selengkapnya, lihat D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC.

Tujuannya mendapatkan struktur akselerasi yang secara fungsional setara dengan struktur akselerasi yang awalnya diserialisasikan. Tidak masalah struktur akselerasi tingkat atas dan bawah urutan apa yang dideserialisasi, selama pada saat struktur akselerasi tingkat atas digunakan untuk raytracing atau struktur akselerasi memperbarui struktur akselerasi tingkat bawah yang dirujuknya.

Deserialisasi hanya dapat dilakukan pada perangkat dan versi driver yang sama tempat data diserialisasikan. Jika tidak, hasilnya tidak terdefinisi.

Mode ini hanya ditujukan untuk alat seperti PIX, meskipun tidak ada yang menghentikan aplikasi apa pun menggunakannya, tetapi mode ini hanya diizinkan saat mode pengembang diaktifkan di OS. Operasi salin ini tidak dimaksudkan untuk digunakan untuk struktur akselerasi penembolokan, karena menjalankan build struktur akselerasi penuh kemungkinan akan lebih cepat daripada memuatnya dari disk.


Persyaratan

   
Header d3d12.h