当前位置: 首页 > wzjs >正文

电子商务网站建设的一般步骤有贵阳做网络推广的公司

电子商务网站建设的一般步骤有,贵阳做网络推广的公司,做网站从哪方面入门,找外包公司做网站价钱调用 DxgkDdiRenderKm 函数时,操作系统指定要通过 pRenderKmArgs 参数执行的 GDI 硬件加速呈现操作的类型。 DirectX 图形内核子系统的显示端口驱动程序 (Dxgkrnl.sys) 将 pRenderKmArgs-pCommand> 成员设置为指向包含可变大小DXGK_RENDERKM_COMMAND结构数组的命…

调用 DxgkDdiRenderKm 函数时,操作系统指定要通过 pRenderKmArgs 参数执行的 GDI 硬件加速呈现操作的类型。 DirectX 图形内核子系统的显示端口驱动程序 (Dxgkrnl.sys) 将 pRenderKmArgs-pCommand> 成员设置为指向包含可变大小DXGK_RENDERKM_COMMAND结构数组的命令缓冲区。 它还将 pRenderKmArgs-pCommandLength> 成员设置为命令缓冲区的大小(以字节为单位)。

驱动程序必须将输入DXGK_RENDERKM_COMMAND命令缓冲区转换为 DMA 缓冲区命令并生成修补程序位置列表。

DXGK_RENDERKM_COMMAND包含指定 GDI 硬件加速呈现操作的特征的成员,如下表所述。

呈现操作DXGK_RENDERKM_COMMAND 成员相应的DXGK_GDIARG_XXX结构相应的DXGK_RENDERKM_OPERATION值

alpha 混合

AlphaBlend

DXGK_GDIARG_ALPHABLEND

DXGK_GDIOP_ALPHABLEND = 3

无拉伸的位块传输

BitBlt

DXGK_GDIARG_BITBLT

DXGK_GDIOP_BITBLT = 1

ClearType 和抗锯齿文本像素混合

ClearTypeBlend

DXGK_GDIARG_CLEARTYPEBLEND

DXGK_GDIOP_CLEARTYPEBLEND = 7

颜色填充

ColorFill

DXGK_GDIARG_COLORFILL

DXGK_GDIOP_COLORFILL = 2

拉伸位块传输

StretchBlt

DXGK_GDIARG_STRETCHBLT

DXGK_GDIOP_STRETCHBLT = 4

具有透明度的位块传输

TransparentBlt

DXGK_GDIARG_TRANSPARENTBLT

DXGK_GDIOP_TRANSPARENTBLT = 6

 操作系统使用 DXGK_RENDERKM_COMMAND 的 OpCode 成员来指示显示微型端口驱动程序必须处理的特定 GDI 硬件加速呈现操作。 OpCode 成员的类型为 DXGK_RENDERKM_OPERATION,其值显示在表中。

操作系统还将提供 DXGK_RENDERKM_COMMAND CommandSize 成员的相应值,该值指定当前呈现命令的大小(以字节为单位),包括 OpCode 的值和命令中的子矩形数。

1. 核心流程

当 DxgkDdiRenderKm 被调用时,驱动程序需完成以下任务:

1.解析命令缓冲区:

输入:pRenderKmArgs->pCommand 指向 DXGK_RENDERKM_COMMAND 结构数组。

长度:pRenderKmArgs->CommandLength 指定缓冲区总大小(字节)。

2.转换命令:将 DXGK_RENDERKM_COMMAND 转换为 GPU 可执行的 DMA 缓冲区指令。

3.生成修补列表:为动态资源(如纹理、顶点缓冲区)生成修补位置列表(Patch Location List)

 2. 命令结构:DXGK_RENDERKM_COMMAND

成员类型说明
OpCodeUINT操作类型(如 DXGK_GDIOP_BITBLTDXGK_GDIOP_ALPHABLEND)。
CommandSizeUINT当前命令的总大小(字节,含附加数据)。
FlagsUINT操作标志(如同步、缓存控制)。
pDstRectRECT*目标矩形(可选,依赖操作类型)。
pSrcRectRECT*源矩形(可选,如复制操作)。
AdditionalDataBYTE[]附加数据(如像素格式、混合参数)

常见操作码(OpCode):

  • DXGK_GDIOP_BITBLT:位块传输(传统 GDI 绘图)。
  • DXGK_GDIOP_ALPHABLEND:带 Alpha 混合的位块传输。
  • DXGK_GDIOP_STRETCHBLT:拉伸位块传输。
  • DXGK_GDIOP_CLEAR:填充矩形。

3. DMA 缓冲区生成与修补列表

(1) DMA 缓冲区要求
格式:必须符合 GPU 指令集架构(如 PM4、NVIDIA GPU 命令流)。

资源引用:

  • 使用 分配句柄(Allocation Handle) 引用显存中的纹理/缓冲区。
  • 动态地址需通过 修补列表 在提交前更新。

(2) 修补列表生成
作用:记录 DMA 缓冲区中需运行时修补的内存位置(如动态纹理地址)。

示例伪代码:

typedef struct {D3DGPU_VIRTUAL_ADDRESS GpuVa;  // GPU 虚拟地址UINT PatchOffset;              // DMA 缓冲区中的偏移量
} PATCH_LOCATION;VOID GeneratePatchList(DXGK_RENDERKM_COMMAND* pCmd, PATCH_LOCATION* pList) {if (pCmd->OpCode == DXGK_GDIOP_BITBLT) {pList[0].GpuVa = GetTextureGpuVa(pCmd->AdditionalData);pList[0].PatchOffset = dmaBufferOffset + 0x10; // 示例偏移}
}

4. 分阶段处理(MultipassOffset 复用)

若命令缓冲区过大,需分多次处理:

保存进度:

  • 高16位:已处理的命令缓冲区偏移量。
  • 低16位:当前命令的子操作状态。

继续处理:下次调用时从 MultipassOffset 恢复进度。

示例:

UINT processedBytes = pRenderKmArgs->MultipassOffset >> 16;
while (processedBytes < pRenderKmArgs->CommandLength) {DXGK_RENDERKM_COMMAND* pCmd = (DXGK_RENDERKM_COMMAND*)((BYTE*)pRenderKmArgs->pCommand + processedBytes);if (!ConvertToDmaBuffer(pCmd, ...)) {// 更新进度并请求更多 DMA 缓冲区空间pRenderKmArgs->MultipassOffset = (processedBytes << 16) | currentSubOp;return STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER;}processedBytes += pCmd->CommandSize;
}

5. 错误处理

状态码场景
STATUS_SUCCESS所有命令成功转换并提交。
STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFERDMA 缓冲区空间不足(需分阶段处理)。
STATUS_INVALID_PARAMETER非法命令或参数(如无效矩形)。

6. 性能优化建议

命令批处理:合并多个 DXGK_RENDERKM_COMMAND 到单个 DMA 缓冲区以减少提交开销。静态命令缓存:缓存常用操作(如清屏)的 DMA 缓冲区片段。

异步修补:若硬件支持,在另一个线程中预生成修补列表。

7. 调试与验证

WDK 工具:使用 !dxgkdio.dumpcommand 内核调试器扩展解析命令缓冲区。

日志记录:记录 OpCode 和 CommandSize 以验证命令流完整性。

8. 总结

输入:DXGK_RENDERKM_COMMAND 数组描述 GDI 操作。

输出:DMA 缓冲区 + 修补列表,供 GPU 执行。

关键点:

  • 正确处理 MultipassOffset 以支持大型命令缓冲区。
  • 修补列表确保动态资源地址正确绑定。
http://www.dtcms.com/wzjs/556746.html

相关文章:

  • 怎么上传网站源码厦门市建设工程造价网站
  • 平台与网站有什么区别wordpress修改为中文
  • 3m网站源码设计网站多少钱
  • 网站建设软件排行企业网站建设包含哪些内容
  • 烟台外贸网站建设公司总经理培训推广哪家好
  • 网站建设word文档wordpress获取qq头像评论
  • 做图片祝福的网站建设部工程业绩网站
  • 最专业的礼品网站案例参考wordpress 手机首页
  • 安全质量报监建设局网站wordpress和vue
  • 网站修改域名qt开发安卓app
  • 长春网站制作系统买网站平台名字吗
  • 网站建设需要提供什么资料网站开发如何建设公共页面
  • 搭建企业网站流程河南旅游网站建设
  • 杭州网站建设市场wordpress多用途主题排行
  • 专业网站排名优化小程序appld
  • 网站建设中的注册和登录页面网页传奇哪个最火
  • 妇科医院网站设计高端酒店网站模板
  • 哪里有网站制作价格开发外贸产品的网站
  • 大连网站建设报价优质商家用asp.net开发网站的优势
  • 信息门户网站建设报价沈阳网站优化推广方案
  • 做网站补贴网站建设的原则
  • 营销型网站建设方案书欧米茄表价格官网报价
  • 网站建设速度如何解决购物网站设计会员管理模块
  • 电子商务网站建设重要性百度怎么自己做网站吗
  • 网站优化的好处建立网站站点的过程
  • 哪个网站可以做ppt赚钱济南网络品牌推广
  • 国外有没有专门做靶材的网站网站文案优化
  • 搭建淘宝客网站源码包子店vi设计
  • 大型网站开发企业重庆做木门网站公司
  • dtcms网站开发网站内容更新外包