Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/draw_pass.hh
| Show First 20 Lines • Show All 250 Lines • ▼ Show 20 Lines | void draw_indirect(GPUBatch *batch, | ||||
| ResourceHandle handle = {0}); | ResourceHandle handle = {0}); | ||||
| void draw_procedural_indirect(GPUPrimType primitive, | void draw_procedural_indirect(GPUPrimType primitive, | ||||
| StorageBuffer<DrawCommand, true> &indirect_buffer, | StorageBuffer<DrawCommand, true> &indirect_buffer, | ||||
| ResourceHandle handle = {0}); | ResourceHandle handle = {0}); | ||||
| /** | /** | ||||
| * Record a compute dispatch call. | * Record a compute dispatch call. | ||||
| */ | */ | ||||
| void dispatch(int2 group_len); | |||||
| void dispatch(int3 group_len); | void dispatch(int3 group_len); | ||||
| void dispatch(int3 *group_len); | void dispatch(int3 *group_len); | ||||
| void dispatch(StorageBuffer<DispatchCommand> &indirect_buffer); | void dispatch(StorageBuffer<DispatchCommand> &indirect_buffer); | ||||
| /** | /** | ||||
| * Record a barrier call to synchronize arbitrary load/store operation between draw calls. | * Record a barrier call to synchronize arbitrary load/store operation between draw calls. | ||||
| */ | */ | ||||
| void barrier(eGPUBarrier type); | void barrier(eGPUBarrier type); | ||||
| ▲ Show 20 Lines • Show All 437 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| /** \} */ | /** \} */ | ||||
| /* -------------------------------------------------------------------- */ | /* -------------------------------------------------------------------- */ | ||||
| /** \name Compute Dispatch Implementation | /** \name Compute Dispatch Implementation | ||||
| * \{ */ | * \{ */ | ||||
| template<class T> inline void PassBase<T>::dispatch(int2 group_len) | |||||
| { | |||||
| BLI_assert(shader_); | |||||
| create_command(Type::Dispatch).dispatch = {int3(group_len.x, group_len.y, 1)}; | |||||
| } | |||||
| template<class T> inline void PassBase<T>::dispatch(int3 group_len) | template<class T> inline void PassBase<T>::dispatch(int3 group_len) | ||||
| { | { | ||||
| BLI_assert(shader_); | BLI_assert(shader_); | ||||
| create_command(Type::Dispatch).dispatch = {group_len}; | create_command(Type::Dispatch).dispatch = {group_len}; | ||||
| } | } | ||||
| template<class T> inline void PassBase<T>::dispatch(int3 *group_len) | template<class T> inline void PassBase<T>::dispatch(int3 *group_len) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 438 Lines • Show Last 20 Lines | |||||