小编Emi*_*rov的帖子

GLSL:关于连贯限定符

我没有清楚地了解coherent限定符和原子操作是如何协同工作的。

我使用以下代码在同一个 SSBO 位置执行一些累加操作:

uint prevValue, newValue;
uint readValue = ssbo[index];
do
{
    prevValue = readValue;
    newValue = F(readValue);
}
while((readValue = atomicCompSwap(ssbo[index], prevValue, newValue)) != prevValue);
Run Code Online (Sandbox Code Playgroud)

这段代码对我来说很好用,但是,coherent在这种情况下,我是否需要使用限定符声明 SSBO(或图像)?

我是否需要coherent在我只打电话的情况下使用atomicAdd

我什么时候需要使用coherent限定符?我是否只需要在直接写入的情况下使用它:ssbo[index] = value;

opengl synchronization atomic glsl

5
推荐指数
1
解决办法
1402
查看次数

Visual Studio 删除共享 .pch 文件以及有关自定义生成步骤的问题

我尝试使用共享的 .pch 文件,该文件在一个项目中编译并在其他项目中使用。

但是,如果 PCH 项目的 .pdb 文件名与其他项目的 .pdb 文件名不同,则 .pch 文件将被删除。

此页面没有回答问题:https://devblogs.microsoft.com/cppblog/shared-pch-usage-sample-in-visual-studio/

我不想对所有 PDB 使用相同的名称。

问题:

1)为什么.pch文件在其他项目编译开始时被删除,这会导致C1083错误(.pch未找到),如果PDB名称不相等,不像该页面那样?

2)我使用 COPY 命令复制 pch.pdb 和 pch.idb 文件,是否有 RENAME 命令或其他命令,如果复制的 pch.pdb 应该像依赖项目的 PDB 一样命名?在哪里可以找到自定义构建步骤命令的完整列表?

3)我不明白自定义构建步骤中“附加依赖项”和“输出”的目的。我可以将 .pch 文件名输入到依赖项列表中,这样它就不会被删除吗?输出列表是否需要包含依赖项目的 PDB 名称或 pch.pdb,或两者都包含?

c++ msbuild custom-build-step precompiled-headers visual-studio

5
推荐指数
1
解决办法
859
查看次数

OpenGL:"discard"是否已弃用GL_ALPHA_TEST的唯一替代品?

我刚刚意识到GL_ALPHA_TEST自OpenGL 3.0以来已被弃用,所以我无法使用它glEnable().我已经尝试快速谷歌如何更换它(以及为什么它被弃用),但未能找到这个简单问题的答案.我也没有找到有关GL_ALPHA_TEST在Khronos文档中删除的信息.

我建议现在根据其alpha值丢弃片段的唯一方法是片段着色器中的"discard"关键字.我对吗?

opengl

1
推荐指数
1
解决办法
179
查看次数