| 508 | } |
| 509 | |
| 510 | void RenderContext::drawIndexedIndirect( |
| 511 | GraphicsState* pState, |
| 512 | ProgramVars* pVars, |
| 513 | uint32_t maxCommandCount, |
| 514 | const Buffer* pArgBuffer, |
| 515 | uint64_t argBufferOffset, |
| 516 | const Buffer* pCountBuffer, |
| 517 | uint64_t countBufferOffset |
| 518 | ) |
| 519 | { |
| 520 | resourceBarrier(pArgBuffer, Resource::State::IndirectArg); |
| 521 | auto encoder = drawCallCommon(pState, pVars); |
| 522 | FALCOR_GFX_CALL(encoder->drawIndexedIndirect( |
| 523 | maxCommandCount, |
| 524 | pArgBuffer->getGfxBufferResource(), |
| 525 | argBufferOffset, |
| 526 | pCountBuffer ? pCountBuffer->getGfxBufferResource() : nullptr, |
| 527 | countBufferOffset |
| 528 | )); |
| 529 | mCommandsPending = true; |
| 530 | } |
| 531 | |
| 532 | void RenderContext::raytrace(Program* pProgram, RtProgramVars* pVars, uint32_t width, uint32_t height, uint32_t depth) |
| 533 | { |