标签: vulkan

如何在 Windows 上安装 Vulkan 验证层?

我按照 Vulkan-LoaderAndValidationLayers github 上的说明进行操作: https: //github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/layers/README.md

我已经构建了图层,将 DLL 复制到可执行文件旁边(出于测试目的,稍后将设置路径),创建了 vk_layer_settings.txt (也在我的可执行文件旁边),并在我的 VK_INSTANCE_LAYERS 环境中设置图层名称。变种

但无论我做什么, vkEnumerateInstanceLayerProperties 返回的数组都不包含任何验证层。

我错过了什么神奇的步骤?这是在 Nvidia 970M 上运行的 Windows 8.1

vulkan

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

如何在虚幻引擎 4 中获取帧缓冲区?

我使用 Unreal 作为模拟服务器。现在我可以从 Python 客户端连接到它并通过 UDP 传输/接收数据。但是我仍然没有找到一种正确的方法来捕获帧并将其流式传输到 Python 客户端以在 OpenCV 中进行处理。

我试图制作屏幕截图并将其保存到文件中,但这种方式太慢了。

我也尝试渲染到纹理目标,但这对我来说也不是最佳方式,因为我需要渲染 2 次(对于相机和 2d 捕捉器)。

现在我找到了一种访问 Vulkan 帧缓冲区的方法(我在 Linux 上),但我找不到任何文档或示例,以及如何操作。

如何在自定义 C++ 演员中获取原始帧缓冲区字节数组?

unreal-engine4 vulkan

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

Vulkan - 读取缓冲区中浮点着色器颜色值到 uchar 值的奇怪映射

我知道着色器中的浮点颜色值范围 [0..1] 映射到 UCHAR 缓冲区中的 [0..255] 范围。

据此,我预计 UCHAR 缓冲区中的每次更改的着色器颜色值的步长为 1/255。

但结果却出人意料地不同。这是前两个步骤:

Shader 中的红色浮点值 -> 读取缓冲区中的 UCHAR 值

0.000000 -> 0

0.002197 -> 0

0.002198 -> 1

0.006102 -> 1

0.006105 -> 2

前两个步长约为 0.002197 和 0.006102,与预期步长 0.00392 和 0.00784 不同。

那么映射公式是什么呢?

shader colors vulkan

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

为什么 Vulkan 禁止非统一块的统一?

根据Vulkan 规范

以下功能已被删除:

  • 默认制服(不在统一块内的统一变量)

例如,GLSL 中禁止以下行为:

layout(set = 0, binding = 0) uniform mat4 projectionMatrix;
Run Code Online (Sandbox Code Playgroud)

相反,似乎鼓励程序员创建一个统一的块:

layout(set = 0, binding = 0) uniform Projection {
    mat4 matrix;
} projection;
Run Code Online (Sandbox Code Playgroud)

使用单值制服有时对于较小的应用程序很有用。删除该功能的理由是什么?

glsl vulkan

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

澄清 Vulkan SPIR-V 中持续目标的确切构成

我正在尝试了解 SPIR-V 规范,例如了解 for 循环。在 1.6 修订版 2 规范的开头,有以下示例(为了一致性,仅取部分内容)

for (int i = 0; i < 4; ++i)
    color *= multiplier;
Run Code Online (Sandbox Code Playgroud)

变成:

%49 = OpLabel
      OpLoopMerge %51 %52 None ; structured loop
      OpBranch %53
%53 = OpLabel
%54 = OpLoad %16 %48
%56 = OpSLessThan %25 %54 %55 ; i < 4 ?
      OpBranchConditional %56 %50 %51 ; body or break
%50 = OpLabel ; body
%58 = OpLoad %7 %57
%59 = OpLoad %7 %31
%60 = OpFMul %7 …
Run Code Online (Sandbox Code Playgroud)

control-flow control-flow-graph vulkan spir-v

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

Vulkan 加载 8 位格式的纹理在渲染时呈白色

我正在将 RGBA PNG 图片加载到 vulkan 中。我在这个过程中没有出现任何错误,但我的着色器向我显示了白色纹理。

我很快发现,如果将采样像素乘以 0.00390625(即 1/256),我就会得到正确的颜色。所以在这个过程中,vulkan 似乎只是将我的 8 位值复制到浮点版本而不进行转换。我缺少什么?

我在 GLSL 中使用组合图像采样器和使用 VK_FORMAT_R8G8B8A8_UINT 格式创建的图像。我不知道在哪里告诉 Vulkan 转换数据?

floating-point image vulkan

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

我应该如何处理 Vulkan 对象来发出命令

好的,我们有队列,我们​​将命令缓冲区提交到队列,我们​​将渲染通道记录到命令缓冲区,我们将子通道添加到渲染通道。为什么这么复杂。据我所知,我们可以使用子通道来有效地同步我们的命令,并且我们可以一次性将整个队列发送到 GPU。但为什么要使用命令缓冲区和渲染通道。这还不是全部,还有命令池来创建命令缓冲区。为什么我需要多个队列,每个队列有多个命令缓冲区,每个队列有多个渲染通道,每个队列有多个子通道。

命令池对于多线程很有用。好的。所以我可以在我的线程中创建命令缓冲区,为什么我需要两个。如果我可以在子通道中完成所有操作,为什么我需要两个渲染通道,我是否遗漏了一些东西?

需要明确的是,我正在为我的引擎围绕 Vulkan 制作一个包装器或抽象,并试图掌握这些概念。也许这才是真正的问题,我试图在没有足够知识的情况下抽象一切并进行纯粹的 Vulkan 项目,但在我看来,这种方式更容易学习。

我尝试在网上寻找一些解释,但没有任何可以满足我的需要。

c++ graphics rendering gpu vulkan

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

什么更容易为新手编程 - directx 12或vulkan

我是计算机图形学和游戏开发的新手,想知道什么更容易学习 - Directx 12或Vulkan?

更简单的是我指的是函数名,类名,命名约定,如何设置/启动vulkan项目vs directx 12等.

c++ directx vulkan

-2
推荐指数
1
解决办法
1154
查看次数

不使用登台缓冲区的原因是什么?

最近我想知道一个游戏,如果有很多模型,每个模型都需要顶点缓冲区来绘制.如下三个选项,哪一个最有效?

  1. 创建几个小顶点缓冲区并在绘制这些模型之前使用vkMapMemory更新它.
  2. 创建几个小顶点缓冲区并使用临时缓冲区进行更新.
  3. 创建几个足够大的顶点缓冲区并使用它.

graphics game-engine vulkan

-2
推荐指数
1
解决办法
697
查看次数

Vulkan:为什么1080 Ti在arch上的maxMemoryAllocationCount为4294967296但在Windows上只有4096?

我目前正在用C++构建一个游戏引擎,它使用vulkan进行渲染.在实现地形渲染器时,我达到了硬件限制,maxMemoryAllocationCount限制了分配的内存块数量.我检查了https://vulkan.gpuinfo.org/,看看不同GPU上的这个值有多高.在查看"GeForce GTX 1080 Ti"时,Windows的值为4096,而arch/manjaro的值为4294967296.为什么这些操作系统之间存在差异,何时这应该是硬件限制?

c++ gpu vulkan

-2
推荐指数
1
解决办法
379
查看次数

在没有管理员权限的情况下安装 Vulkan SDK?

我尝试在 Windows 10 上安装官方 Vulkan SDK。不幸的是,安装程序要求管理员权限,而我显然没有。

尽管如此:到底为什么呢?SDK不只是一堆与库和一些热门示例混合在一起的头文件吗?

我正在寻找一种使用 MinGW 开始使用 Vulkan 的方法。有我可以使用的 .zip 文件吗?某种预编译?或者我至少能够自己编译 Vulkan 吗?

c++ windows vulkan

-2
推荐指数
1
解决办法
1407
查看次数

我应该学习OpenGL还是等待Vulkan被释放

我只是想知道你是否会推荐未来学习OpenGL或等待Vulkan api.我目前正在从learnopengl.com学习OpenGL,并且想知道如果将来是vulkan,我是否应该继续使用它.

opengl graphics vulkan

-3
推荐指数
1
解决办法
1216
查看次数

如何在 Linux 中获取已安装 Vulkan API 的版本?

2018-03-07,新版API(Vulkan 1.1)发布。

我想知道:

  1. 哪个控制台命令可以显示当前安装的 API 版本。
$ /usr/bin/vulkaninfo | head -n 5
===========
VULKAN INFO
===========

Vulkan Instance Version: 1.1.70
WARNING: radv is not a conformant vulkan implementation, testing use only.
Run Code Online (Sandbox Code Playgroud)
  1. 如何以编程方式确定 C# 语言中的相同内容。

gpgpu vulkan spir-v

-3
推荐指数
1
解决办法
6774
查看次数