Submitting a Command Buffer
来源:互联网 发布:爱相随网络歌曲 编辑:程序博客网 时间:2024/05/22 13:13
The following sequence of operations must be performed to pass a command buffer through the Windows Vista graphics stack:
The user-mode display driver initiates a command-buffer submission if the Direct3D runtime calls one of the following user-mode display driver functions to perform the specified operation:
- The Present function to display graphics.
- The Flush function to submit hardware commands.
- The Lock function to lock a resource, which is used in the current command batch.
Note that the user-mode display driver also always initiates a command-buffer submission whenever the command buffer is full.
The user-mode display driver calls the Direct3D runtime's pfnRenderCb function to submit the command buffer to the runtime.
- The DirectX graphics kernel subsystem calls the display miniport driver's DxgkDdiRender orDxgkDdiRenderKm function to validate the command buffer, write a DMA buffer in the hardware's format, and produce an allocation list that describes the surfaces used. Note that the DMA buffer has not yet been patched (that is, assigned physical addresses).Note If the runtime initiated the command-buffer submission by calling the user-mode display driver's Present function, the graphics subsystem calls the display miniport driver'sDxgkDdiPresent function, rather than DxgkDdiRender or DxgkDdiRenderKm.
The video memory manager calls the display miniport driver's DxgkDdiBuildPagingBuffer function to create special purpose DMA buffers, known as paging buffers, that move the allocations specified in the allocation list that accompanies the DMA buffer to and from GPU-accessible memory. For more information, see Paging Video Memory Resources.
The GPU scheduler calls the display miniport driver's DxgkDdiPatch function to assign physical addresses to the resources in the DMA buffer. However, the scheduler is not required to callDxgkDdiPatch to assign physical addresses to the paging buffer because physical addresses for the paging buffer were passed in and assigned during the DxgkDdiBuildPagingBuffer call.
The GPU scheduler calls the display miniport driver's DxgkDdiSubmitCommand function to request that the driver queue the paging buffer to the GPU execution unit.
The GPU scheduler calls the display miniport driver's DxgkDdiSubmitCommand function to request that the driver queue the DMA buffer to the GPU execution unit. Each DMA buffer submitted to the GPU contains a fence identifier. After the GPU finishes processing the DMA buffer, the GPU generates an interrupt.(GPU调度调用miniport驱动的DxgkDdiSubmitCommand ,请求miniport驱动取出DMA buffer写入GPU执行单元。DMA buffer包含一个id。GPU处理结束后,产生一个中断。
The display miniport driver is notified of the interrupt in its DxgkDdiInterruptRoutine function. The display miniport driver should read, from the GPU, the fence identifier of the DMA buffer that just completed.(收到GPU中断的通知,miniport驱动的DxgkDdiInterruptRoutine被调用。驱动知悉被GPU处理的DMA的ID
The display miniport driver should call the DxgkCbNotifyInterrupt function to notify the GPU scheduler that the DMA buffer completed.(miniport驱动调用DxgkCbNotifyInterrupt通知GPU调度,DMA buffer处理结束
The display miniport driver should call the DxgkCbQueueDpc function to queue a deferred procedure call (DPC).(miniport驱动调用DxgkCbQueueDpc,获取一个DPC
The display miniport driver's DPC is notified to handle most of the DMA buffer processing.
- Submitting a Command Buffer
- CGI - Submitting a Form
- Submitting a Batch Job in PBS
- The Process of Submitting a Job
- GPU Command Buffer
- CHECKLIST TO USE BEFORE SUBMITTING A PAPER TO A JOURNAL
- CHECKLIST TO USE BEFORE SUBMITTING A PAPER TO A JOURNAL
- Condor手册 - 2.5 - Submitting a Job 提交任务
- ORA-31623 When Submitting a Datapump Job [ID 308388.1]
- Submitting Applications
- Creating a Ring Buffer
- A Canvas of Double Buffer
- Detection of a buffer overrun
- Freefloat FTP Server (CWD command) Buffer Overflow Exploit
- freeftpd 1.10.0 PASS Command Buffer Overflow Analysis
- Chrome内核解析 -- 绘制引擎基础篇:Command Buffer
- How do I get the “Command Buffer” in Solaris 10?
- USACO-Submitting Solutions
- 普通的用户注册前台验证
- Text实例
- 范型 多个类型的实例 --java编程之范型
- Linux命令(6):常用文件重定向命令
- Monitoring tomcat By zabbix
- Submitting a Command Buffer
- 关于ITransactions接口
- 安卓开发学习之009 RelativeLayout详解+计算器实现
- DES加解密
- ubuntou root 密码修改
- storyboard传值
- 关于c++ find返回值类型 与string::nops的使用的若干问题
- OSG对象设置透明
- KMP情况分类