Apakah ada cara untuk mendefinisikan array besar di HLSL atau alternatif apa pun untuk ini karena saya mencoba memindahkan beberapa perhitungan saya ke GPU.

Saat ini saya memiliki

struct Buffer
{
    float3 image[640 * 480];   
};

Tapi saya mendapatkan kesalahan

error X3059: array dimension must be between 1 and 65536

Akan lebih bagus jika saya tidak harus membagi ini dan kemudian menggabungkannya kembali di CPU.

Apakah ada cara untuk mengatasi ini?

Perbarui

Seperti yang disebutkan dalam komentar, akan lebih masuk akal untuk menyimpan data ini sebagai tekstur, karena array yang saya coba buat menyimpan data piksel. Saya telah mencoba mendefinisikan Texture2D saya di file HLSL, tetapi sepertinya saya tidak dapat mengedit data, atau menulis ke file tekstur.

Apakah ada yang tahu bagaimana melakukan ini?

0
kbz 9 November 2017, 22:33

1 menjawab

Jawaban Terbaik

Saya tidak dapat menemukan solusi untuk ini tetapi karena saya memanipulasi data gambar, menggunakan RWTexture2D<float4> dan menyediakan akses baca tulis tampaknya berfungsi dengan baik untuk apa yang ingin saya capai.

0
kbz 19 November 2017, 19:13