问题标签 [compute-shader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
directx-11 - DirectX 11 Compute Shader - 不写入所有值
我正在尝试使用 DirectX11 计算着色器进行分形渲染的一些实验。提供的示例在 FeatureLevel_10 设备上运行。
我的 RwStructured 输出缓冲区的数据格式为 R32G32B32A32_FLOAT
问题是,当写入缓冲区时,似乎只有 ALPHA ( w ) 值被写入其他内容......这是着色器代码:
该代码实际上在某种意义上产生了正确的结果(2D Mandelbrot 集),但它似乎以某种方式只触及了 alpha 值而没有写入任何其他内容,尽管集内的像素应该是红色的......(图像是黑色的&白色的 )
有人知道这里发生了什么吗?
debugging - 如何调试 DirectX 11 计算着色器?
我已经开始使用DirectX 11 Compute Shader技术进行 GP-GPU 编程。我在 HLSL 上编写了一个相当复杂的程序,当我想调试它时,我意识到DX SDK 2009 年 8 月的PIX实用程序不支持计算着色器......我知道 Nvidia 将发布适用于 Visual Studio 的Nexus,它将支持直接计算调试,但仅限于尚未发布的下一代 NVidia GPU :( Compute Shader 技术对我来说非常有前途,因为设备独立性,但如果没有调试支持,它将很难使用。
您是否知道任何可用于 Compute Shader 调试的工具或方法,现在可用或计划在不久的将来发布?
debugging - 来自 DX SDK 的 PIX 中的计算着色器分析支持 2010 年 2 月
DirectX SDK 2010 年 2 月下载页面包含有关新功能的信息,包括支持计算着色器分析的 PIX 改进:
PIX 大大改进了对使用 Direct3D 11 功能的程序分析的支持,包括计算着色器、曲面细分和动态着色器类链接。
我对 PIX 中的计算着色器分析和调试很感兴趣,所以我下载并安装了新版本的 DX SDK。但是,当我无法在其文档中找到有关 PIX 对 Compute Shaders 支持的任何特定细节时,我感到非常困惑。我也尝试调查 PIX 并在 UI 中找到与计算着色器相关的内容,但我没有找到任何东西......请您指出我在文档或互联网中的位置,在那里我可以阅读有关计算着色器分析的信息在 PIX 中或描述如何使用 PIX 来做到这一点?
c++ - 如何使用 directX 11 计算着色器显示某些内容?
我想从我的 directX 11 计算着色器写入纹理。但是我不知道如何在屏幕上显示它,也不确定我应该使用哪种缓冲区来执行此操作。
directx - DirectX11:将数据从 ComputeShader 传递到 VertexShader?
是否可以对要使用计算着色器渲染的几何数据应用过滤器,然后将结果用作顶点着色器中的输入缓冲区?这样可以省去我读回数据的麻烦(和时间)。
任何帮助深表感谢。
c# - 通过使用两个浮点数进行双重除法?
我想使用两个浮点数进行双重除法(Direct Compute 似乎不支持双重除法)。
那可能吗?
这是我到目前为止尝试过的(c#代码,以后应该是HLSL):
0,00105446285765182(结果)
0,00105446284102106(正确结果)
它与 f1 中的舍入有关。如果值改为:
那么结果是正确的。
directx - ComputeShader 与 PixelShader 的速度
与 PixelShader 相比,我有一个关于 ComputeShader 的问题。我想对缓冲区进行一些处理,这对于像素着色器和计算着色器都是可能的,现在我想知道两者是否有任何优势,特别是在速度方面。我遇到了仅使用 8 位值的问题,但我应该能够解决这个问题。
输出中的每个数据点都将使用围绕它的总共 8 个数据点(MxN 矩阵)来计算,所以我认为这对于像素着色器来说是完美的,因为不同的输出根本不会相互影响。
但是我找不到任何基准来比较着色器,现在我想知道我应该瞄准哪一个。唯一的目标是速度。
c++ - 像素格式转换哪个更快?像素着色器或计算着色器,或者可能是 OpenCL?
我想即时将帧从 YUV420p 格式(或类似格式)转换为 ABGR 格式,并将结果帧作为纹理放入视频内存中。
我现在可以考虑两种方法:
- 让每个通道成为一个源纹理,并渲染到另一个纹理。
- 在计算着色器中“正常”执行。
我不太了解 GPU 中的规则。在我的卡片中,有 720 个着色器核心、36 个纹理单元和 16 个输出单元。这是否意味着在每个周期内,我最多可以采样 40 个纹理并输出 16 个像素,而我可以执行 720 个着色器操作?因此,如果我使用方法 1,即使我对每个像素只使用 2 或 3 个操作,我也会被限制为 16 个像素输出?如果我使用方法2,是否意味着只要我可以在45个周期内转换一个像素,它就会比使用方法1更快?
gpgpu - Crossfire/SLI 是否有利于 Compute Shader 的性能?
我正在研究 DX11 计算着色器。我想知道如果再添加一张带有 Crossfire/SLI 的视频卡,性能是否会有所提升。或者在不使用 Crossfire/SLI 的情况下再添加一张视频卡。
有没有人尝试过这个?
parallel-processing - 用 openCL 内核替换计算着色器,o/p 像素化和闪烁,尽管 o/p 缓冲区中的值匹配
我有一个应用程序,其中有不同的着色器,其中之一是计算着色器,它计算场景中的光值,光值由计算着色器中编写的累积函数计算。
我编写了一个类似于计算着色器 (.hlsl) 文件的内核 openCL (.cl)。
我已经用 openCL 内核替换了计算着色器,
我在输出光缓冲区中的值与计算着色器输出的值相同,
但是输出看起来像素化并且它在屏幕上闪烁,并且像素化输出的一个小单元的方框与我的内核的工作组大小相匹配。
由于输出光缓冲区(我很确定这是唯一的一个输出缓冲区)具有与计算着色器相同的值,我无法确定我的程序在哪里失败。
有没有人遇到过类似的问题?任何提示或建议都会有所帮助。