DirectCompute网上各种介绍,特性很简单就是用GPU进行计算,注意资源并不是从管线里面获取的。
1.编译:D3DCompileFromFile
2.创建:ID3D11Device :: CreateComputeShader
资源(dx) :
CSSetConstantBuffers :设置恒定的缓冲区所使用的计算着色器的阶段。
CSSetSamplers :设置一个数组,计算着色器阶段的采样状态。
CSSetShader :设置一个计算着色到该设备。
CSSetShaderResources :数组绑定的着色器资源的计算着色器阶段。
CSSetUnorderedAccessViews :设置一个数组,无序的资源的观点。
除增加一个无序的view其他的跟别的shader一样。
由于之前都是只读的,为CS增加了一组读写的。
执行:
ID3D11DeviceContext::Dispatch :一个三维的阵列,记录着要调度的线程组的次数。
ID3D11DeviceContext::DispatchIndirect
// C++ application code pImmediateContext->Dispatch(Width / THREADSX, Height / THREADSY, 1 ); // HLSL compute shader code [numthreads(THREADSX, THREADSY, 1)] void CS_QJulia4D( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex )
的Dispatch的参数与hlsl里面的numthreads是有联系的,表示的是线程组X,Y,Z三个维度的数组,目前shader model5 是x :1024 y:1024 z:64 超出就废了。
系统语义:
SV_GroupID :一个xyz三维向量,描述的是当前线程组在整个调度中的位置[0,n-1]
SV_GroupThreadID :一个xyz的三维向量,记录当前线程在线程组中的三维位置[0,n-1]
SV_DispatchThreadID :一个xyz的三维向量,它记录的是当前线程在整个调度中的位置,如果说groupthreadID是相对当前线程组的,那么dispatchthreadID就是全局的一个位置。
SV_GroupIndex :它是一个索引,记录当前线程在当前线程组中的索引位置,它是一维的。
下图显示了关系之间的参数传递给ID3D11DeviceContext::Dispatch,调度(5,3,2),指定的值在numthreads属性,numthreads(10,8,3),和值将传递到计算着色器线程相关的系统的值(SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID)。
相关推荐
DirectCompute程序指南。英文版。对于初学DirectCompute的人很有用的。
主要采用了DirectCompute框架,在VS2008 + DX11 + Win7下编译通过,显卡GForce 9600. VC完整工程,独立的C++类,全源码。可以作为DirectCompute的入门资料。如果不能正常使用,请参看《ReadMe.doc》.
DirectCompute draws a sharp distinction between the code that runs on the host (typical C or C++) and the code that runs on the device (C-like HLSL kernel code). The host code and the device code ...
Its a document by microsoft which is on C++ AMP for direct compute and hlsl programmers.
直接计算库想法是开发一个CLI库,以促进DirectX 11(在将来的12)中使用Direct Compute。 这是一项正在进行的工作,将使用MIT许可证发布。链接器输入依赖性也可以在测试仪上使用它们! kernel32.lib user32.lib gdi...
GPGPU上的Unity Boids行为更新资料添加GitHub Action CI / CD管道,您可以在Actions页面找到最新的exe文件... 修改了Boids行为计算代码,以利用Microsoft Direct Compute,从而显着提高性能。平台视窗文章(中文)参考
## [deformation] 使用DirectCompute软体变形详细信息: Manager GUI: 更新日志: 2014.0x.xx。 物体之间的碰撞检测2014.04.17。 代码重构,支持多个对象( n-body ) 2014.03.17。 添加具有正常变换的每个顶点着色...
GPGPU就是GPU通用计算的缩写,进行GPGPU的方案不少,目前有Direct Compute , OpenGL Compute , OpenCL, CUDA。我们这里学习的是Unity的Compute Shader,作为一种Shader语言,它的语法结构和普通Shader差不多,float3...
在Windows下MinGW使用DirectXCompute使用硬件加速进行数据的并行计算的实例。已经包括了HLSL等所有的问题,可以在CLion中可以直接编译运行。
基于 DirectCompute 的供应商不可知的 GPGPU;该技术的另一个名称是“Direct3D 11 中的计算着色器” 纯 C++ 实现,除了基本的 OS 组件外没有运行时依赖性 比 OpenAI 的实现快得多。 混合 F16 / F32 精度:自 D3D ...
It also includes a dedicated section on general purpose GPU programming that covers CUDA, DirectCompute, and OpenCL examples. In color throughout, GPU Pro6 presents ready-to-use ideas and procedures...
它是一种单程像素着色器,和MLAA一样运行于目标游戏渲染管线的后期处理阶段,但不像后者那样使用DirectCompute,而只是单纯的后期处理着色器,不依赖于任何GPU计算API。正因为如此,FXAA技术对显卡没有特殊要求,...
其中,在windows7和Vista系统下改进GPGPU通用计算支持,包括DirectX 11 Compute Shader/DirectCompute、OpenCL(GPU和CPU)以及OpenGL。windows7用户还可支持各种传感器信息(GPS、温度、亮度、电压、风扇)、多点触摸...
It also includes a dedicated section on general purpose GPU programming that covers CUDA and DirectCompute examples. In color throughout, GPU Pro 7 presents ready-to-use ideas and procedures that can...
7.检测是否支持通用计算的OpenCL、CUDA、PhysX、DirectCompute 4.0。 8.支持检测多块显卡,实时检测GPU频率、显存频率、渲染器频率、显卡温度、GPU使用率、风扇速度百分比、显存使用情况、GPU渲染核心占用率、内存...
It also includes a dedicated section on general purpose GPU programming that covers CUDA and DirectCompute examples. In color throughout, GPU Pro 7 presents ready-to-use ideas and procedures that can...
It also includes a dedicated section on general purpose GPU programming that covers CUDA, DirectCompute, and OpenCL examples. In color throughout, GPU Pro6 presents ready-to-use ideas and procedures...
DX实现的大规模海洋模拟 This sample simulates an Ocean height field using DirectCompute FFT and renders the result using Direct3D10.
Implement image post-processing tasks within compute shaders Use real-time deferred rendering techniques to implement improved shading for lighting and shadows Learn to Program the graphics ...