Inconsistensies with the Compute Shader tutorial
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
Línea de trabajo
Compara el tutorial de Compute Shader con las secciones referenciadas de Drawing a Triangle, especialmente Logical device and queues y Loading compute shaders. Revisa los ejemplos de queue, shader-stage, dispatch, createBuffer, descriptor-binding y particle para comprobar su coherencia y detectar definiciones ausentes. Se considerará terminado cuando el tutorial de compute siga el estilo actual de la API e introduzca cada símbolo requerido antes de usarlo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I've been trying to follow along with the compute shader tutorial after doing everything up till this tutorial, and it seems like the compute shader section is based off an older version of the tutorial, as there are multiple inconsistencies with how the code is structured. These are a couple of the issues I've found:
In Drawing a Triangle / Setup / Logical device and queues, the graphics queue is created like so:
graphicsQueue = vk::raii::Queue(device, graphicsIndex, 0);
In the compute shader section, the compute queue is created like so:
computeQueue = std::make_unique<vk::raii::Queue>( *device, graphicsAndComputeIndex, 0 );
The "Loading compute shaders" section states to load in the shader with
vk::PipelineShaderStageCreateInfo computeShaderStageInfo({}, vk::ShaderStageFlagBits::eCompute, shaderModule, "compMain");
but this gives errors with constructor parameter mismatches. Seems like the fix is to create the computer shader stage in the same way the vertex/fragment shader stages are created in the other tutorial section:
vk::PipelineShaderStageCreateInfo computeShaderStageInfo {
.stage = vk::ShaderStageFlagBits::eCompute,
.module = shaderModule,
.pName = "compMain"
};
When dispatching work, the tutorial says
Now it’s time to actually tell the GPU to do some compute. This is done by calling computeCommandBuffers[frameIndex]→dispatch inside a command buffer. While not perfectly true, a dispatch is for compute as a draw call like commandBuffers[frameIndex]→draw is for graphics. This dispatches a given number of compute work items in at max. three dimensions.
yet commandBuffers[frameIndex]→draw isn't used before in the tutorial. There are a few others (e.g the createBuffer function having a different prototype than the one in earlier sections, the std::array layoutBindings also needing to be created with structs, instead of vk::DescriptorSetLayoutBinding, etc.)
The computer shader tutorial also assume a lot more than the previous sections. When creating the compute queue, it assigns to a computeQueue variable that hasn't appeared anywhere before up till this point. A few sections later, in the loop where the particle positions are initialized, it creates std::vector<Particle> particles(PARTICLE_COUNT);. This is the first time PARTICLE_COUNT is mentioned, and the first time the C++ Particle struct is mentioned. Neither are defined or mentioned anywhere after (though the Particle struct is added onto later).
- Lenguaje dominante
- C++
- Estrellas
- 430
- Forks
- 131
- Merge medio
- 2 d 22 h
- PR fusionados (30 d)
- 7
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de KhronosGroup/Vulkan-Tutorial
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
KhronosGroup/Vulkan-Tutorial#524 ·
Los mantenedores suelen responder en 2 días
-
Multithreading chapter still talks about render passesPosiblemente ocupada @SaschaWillems la tomó hace 12 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
KhronosGroup/Vulkan-Tutorial#519 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Use of old `transitionImageLayout` in later chaptersPosiblemente ocupada @gpx1000 la tomó hace 12 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
KhronosGroup/Vulkan-Tutorial#508 · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Non-C/C++ Vulkan developmentAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100
KhronosGroup/Vulkan-Tutorial#499 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
KhronosGroup/Vulkan-Tutorial#498 ·
Los mantenedores suelen responder en 2 días
Todos los issues de KhronosGroup/Vulkan-Tutorial
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
godotengine/godot#124139 ·
Los mantenedores suelen responder en 1 día
-
Run CICD on any branch pushAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
ChicoState/autovalidate#195 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
petercorke/robotics-toolbox-python#709 ·
Los mantenedores suelen responder en 2 días
-
bug documentation LOW ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
mgradwohl/tasksmack#1212 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
doc: "How to Upgrade" release notes section is outdated since the `bitcoin` wrapper executableAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día