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

做lol直播网站济南网站优化培训

做lol直播网站,济南网站优化培训,wordpress 惠喵,php网站功能支持 GDI 硬件加速的显示微型端口驱动程序应在处理以下分配调用时设置系统或视频内存分配的大小和音调。 DxgkDdiCreateAllocation 当驱动程序处理对 DxgkDdiCreateAllocation 的调用时,它应设置系统或视频内存分配的大小(以字节为单位)。 分…

支持 GDI 硬件加速的显示微型端口驱动程序应在处理以下分配调用时设置系统或视频内存分配的大小和音调。

DxgkDdiCreateAllocation
当驱动程序处理对 DxgkDdiCreateAllocation 的调用时,它应设置系统或视频内存分配的大小(以字节为单位)。 分配的大小是通过 pCreateAllocation-> pAllocationInfo-Size> 成员设置的。 如果分配对 CPU 可见,则大小应包括间距值,即图面的宽度(包括填充)(以字节为单位)。

如果 pGetStandardAllocationDriverData pCreateGdiSurfaceData-Type>>- 成员设置为D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE或D3DKMDT_GDISURFACE_EXISTINGSYSMEM,则分配对 CPU 可见。 有关这些图面类型的属性,请参阅D3DKMDT_GDISURFACETYPE中的说明。

DxgkDdiGetStandardAllocationDriverData
当驱动程序处理对 DxgkDdiGetStandardAllocationDriverData 的调用,以获取对 CPU 可见的分配时,它应:

将 pGetStandardAllocationDriverData->StandardAllocationType 成员设置为D3DKMDT_STANDARDALLOCATION_GDISURFACE。

通过 pGetStandardAllocationDriverData pCreateGdiSurfaceData-> 成员指向的D3DKMDT_GDISURFACEDATA结构,设置 GDI 硬件加速和桌面 Windows 管理器(DWM)可用于重定向的图面的说明。 例如,通过 D3DKMDT_GDISURFACEDATA的“间距 ”成员设置分配的间距。

1. 核心目标

  • 确保驱动程序正确处理 系统内存和显存分配,以支持 GDI 硬件加速 和 DWM(桌面窗口管理器)合成。
  • 管理 CPU 可见的内存分配,使其能被 GDI/DWM 直接访问,并优化内存布局(如音调/Pitch 计算)。

2. 关键函数及实现要求

(1) DxgkDdiCreateAllocation(分配内存)

  • 作用:创建 GPU 或 CPU 可见的内存分配。
  • 关键设置:分配大小:通过 pCreateAllocation->pAllocationInfo->Size 设置(单位:字节)。
  • CPU 可见性:如果分配需要 CPU 访问,必须包含 音调(Pitch) 值(即每行字节数,含填充)。
  • 判定条件(CPU 可见):
    pGetStandardAllocationDriverData->pCreateGdiSurfaceData->Type == D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE  // 暂存表面(CPU 可写)
    || 
    pGetStandardAllocationDriverData->pCreateGdiSurfaceData->Type == D3DKMDT_GDISURFACE_EXISTINGSYSMEM      // 现有系统内存(CPU 可访问)

    计算方式:

    Size = SurfaceHeight * Pitch;  // 总大小 = 高度 × 每行字节数(含填充)

    (2) DxgkDdiGetStandardAllocationDriverData(获取标准分配数据)

  • 作用:配置 GDI/DWM 可用的图面属性(如音调、像素格式等)。
  • 关键设置:

标准分配类型:

pGetStandardAllocationDriverData->StandardAllocationType = D3DKMDT_STANDARDALLOCATION_GDISURFACE;

GDI 表面数据(D3DKMDT_GDISURFACEDATA):

Pitch:设置每行字节数(含填充),影响内存对齐和访问效率。

其他可能字段:

  • 像素格式(如 DXGI_FORMAT_B8G8R8A8_UNORM)
  • 尺寸(Width/Height)
  • 旋转支持(如 D3DKMDT_WSR_IDENTITY 表示无旋转)

3. 关键概念

术语说明
CPU 可见内存可被 CPU 直接读写,通常用于 GDI 渲染或 DWM 合成。
音调(Pitch)每行像素占用的字节数(含填充),用于内存对齐优化。
GDI 表面类型D3DKMDT_GDISURFACE_STAGING_CPUVISIBLE(暂存)、D3DKMDT_GDISURFACE_EXISTINGSYSMEM(系统内存)。
DWM 兼容性确保分配的内存能被 DWM 用于窗口合成(如 Aero 

4. 实现示例(伪代码)

// 在 DxgkDdiCreateAllocation 中处理 CPU 可见分配
if (IsCpuVisible(pCreateAllocation)) {UINT pitch = CalculatePitch(surfaceWidth, pixelFormat);pAllocInfo->Size = surfaceHeight * pitch; // 包含音调的总大小
}// 在 DxgkDdiGetStandardAllocationDriverData 中配置 GDI 表面
if (requestType == GDI_SURFACE) {pSurfaceData->Pitch = CalculateOptimalPitch(width, format);pSurfaceData->Format = DXGI_FORMAT_B8G8R8A8_UNORM; // 示例:32 位 ARGBpSurfaceData->Rotation = D3DKMDT_WSR_IDENTITY;    // 无旋转
}

5. 总结

核心任务:正确设置 内存大小 和 音调,确保 GDI/DWM 能高效访问。

关键点:

  • CPU 可见分配必须包含音调计算。
  • DxgkDdiGetStandardAllocationDriverData 负责提供 GDI 兼容的表面属性。

影响:错误的音调或大小设置可能导致渲染错误、性能下降或 DWM 合成失败。

适用于 WDDM 显示驱动程序开发,特别是在 混合渲染(GDI + D3D) 场景下。

http://www.dtcms.com/wzjs/317561.html

相关文章:

  • wordpress 主题骨架文山seo公司
  • 石家庄服务大型建站汕头网页搜索排名提升
  • 南阳微网站开发免费推广网站有哪些
  • 影视自助建站长沙seo代理商
  • 域名停靠app大全免费下载网站入口北京关键词优化服务
  • 10_10_网站建站兰州网络seo
  • 品牌建设理论包括哪些内容seo是指什么意思
  • 动态网站建设试题和答案网站推广公司大家好
  • 黄页网站推广公司如何进入网站
  • 重庆做木门网站公司爱站网 关键词挖掘
  • wordpress默认注册建设优化网站
  • 安康做企业网站的西安seo外包优化
  • 提供企业网站建设公司seo优化网站优化
  • 东城网站建设哪家好优化seo可以从以下几个方面进行
  • 东莞做网站的公司长沙官网seo分析
  • 网站架构策划手机助手
  • wordpress网站访问量站长友情链接平台
  • 苏州园区属于哪个区官网排名优化方案
  • 子网站怎么建设军事新闻最新消息今天
  • 做网站套模板深圳网络推广方法
  • 企业网站系统排名网站优化靠谱seo
  • c 做商务网站方便吗广告策划
  • 营销型企业网站一般具有哪些功能百家号关键词seo优化
  • 什么程序做网站容易优化免费服务器
  • 常见网站推广方式对seo的理解
  • php做网站要用到的技术线上营销推广方案有哪些
  • 怎样做地方门户网站谷歌商店安卓版下载
  • 网站后台管理系统模板免费发布信息的平台有哪些
  • 威海网站建设哪一家seo排名优化工具推荐
  • 如何选择镇江网站建设菏泽资深seo报价