mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-28 05:46:56 +01:00
shader: assemble point inputs for merged geometry shaders
This commit is contained in:
@@ -79,14 +79,18 @@ struct ShaderMeshInputInfo: ShaderWorkgroupInputInfo {
|
||||
uint32_t max_primitives = 0;
|
||||
uint32_t provoking_vertex = 0;
|
||||
|
||||
[[nodiscard]] constexpr uint32_t InputPrimitiveSize() const {
|
||||
return input_primitive == static_cast<uint32_t>(Prospero::PrimitiveType::kPointList) ? 1u : 3u;
|
||||
}
|
||||
[[nodiscard]] constexpr uint32_t InputPrimitiveStep() const {
|
||||
return input_primitive == static_cast<uint32_t>(Prospero::PrimitiveType::kTriList) ? 3u : 1u;
|
||||
}
|
||||
[[nodiscard]] constexpr uint32_t InputPrimitiveCount(uint32_t vertices) const {
|
||||
return vertices < 3u ? 0u : (vertices - 3u) / InputPrimitiveStep() + 1u;
|
||||
const auto size = InputPrimitiveSize();
|
||||
return vertices < size ? 0u : (vertices - size) / InputPrimitiveStep() + 1u;
|
||||
}
|
||||
[[nodiscard]] constexpr uint32_t InputVertexCount(uint32_t primitives) const {
|
||||
return primitives == 0u ? 0u : (primitives - 1u) * InputPrimitiveStep() + 3u;
|
||||
return primitives == 0u ? 0u : (primitives - 1u) * InputPrimitiveStep() + InputPrimitiveSize();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user