Jadi saya baru saja belajar tentang Compute Shader dan terlihat dari apa yang saya ambil ide yang sama dengan pemrograman paralel yang akan Anda lakukan dengan CUDA atau OpenCL, tetapi dalam pipa shader.
Jika saya ingin menggambar satu juta kubus dalam sebuah adegan saya harus menggunakan satu metode di atas yang lain atau keduanya. Jika keduanya, bagaimana Anda membaginya sehingga GPU tidak mencoba untuk paralel menghitung shader dan proses lain pada saat yang sama
compute-shader
opencl
cuda
FrickeFresh
sumber
sumber
Jawaban:
Ini tidak sepenuhnya benar, hari ini, untuk menganggap komputasi shader sebagai "dalam pipa shader" dalam arti yang sama bahwa vertex dan fragmen shader Anda secara harfiah dihubungkan ke dalam pipa. Komputasi shader tidak "terhubung" dengan apa pun saat ini, tidak dapat mendorong rasterisasi, atau secara langsung mengonsumsi output rasterisasi.
Apa yang memungkinkan Anda lakukan adalah mengkonsumsi dan menghasilkan sumber daya memori yang juga digunakan oleh panggilan dengan cara yang relatif efisien. OpenCL membuat ini agak sulit (lihat misalnya https://software.intel.com/en-us/articles/opencl-and-opengl-interoperability-tutorial ). Ini memungkinkan Anda untuk mengintegrasikan lintasan komputasi secara efisien dalam renderer Anda, tetapi tidak terintegrasi ke dalam jalur render
sumber