[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kwin/fredrik/vulkan] libkwineffects: vulkan/utils: Add CullFront and CullBack pipeline traits
From: Fredrik_Höglund <null () kde ! org>
Date: 2018-02-16 17:01:50
Message-ID: E1emjOQ-0004Yx-CF () code ! kde ! org
[Download RAW message or body]
Git commit 952ecc496967663bab3e7d2986b0b98f663f38f9 by Fredrik Höglund.
Committed on 16/02/2018 at 16:58.
Pushed by fredrik into branch 'fredrik/vulkan'.
vulkan/utils: Add CullFront and CullBack pipeline traits
M +12 -4 libkwineffects/kwinvulkanutils.cpp
M +3 -0 libkwineffects/kwinvulkanutils.h
https://commits.kde.org/kwin/952ecc496967663bab3e7d2986b0b98f663f38f9
diff --git a/libkwineffects/kwinvulkanutils.cpp b/libkwineffects/kwinvulkanutils.cpp
index 95616945c..2efb05b1b 100644
--- a/libkwineffects/kwinvulkanutils.cpp
+++ b/libkwineffects/kwinvulkanutils.cpp
@@ -726,14 +726,22 @@ VkPipeline VulkanPipelineManager::createPipeline(Material material, Traits trait
// Rasterization state
// -------------------
- static const VkPipelineRasterizationStateCreateInfo rasterizationState {
+ VkCullModeFlags cullMode = VK_CULL_MODE_NONE;
+
+ if (traits & CullFront)
+ cullMode |= VK_CULL_MODE_FRONT_BIT;
+
+ if (traits & CullBack)
+ cullMode |= VK_CULL_MODE_BACK_BIT;
+
+ const VkPipelineRasterizationStateCreateInfo rasterizationState {
.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
.depthClampEnable = VK_FALSE,
.rasterizerDiscardEnable = VK_FALSE,
.polygonMode = VK_POLYGON_MODE_FILL,
- .cullMode = VK_CULL_MODE_NONE,
+ .cullMode = cullMode,
.frontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE,
.depthBiasEnable = VK_FALSE,
.depthBiasConstantFactor = 0.0f,
@@ -1054,11 +1062,11 @@ std::tuple<VkPipeline, VkPipelineLayout> VulkanPipelineManager::pipeline(Materia
union {
struct {
unsigned material:3;
- unsigned traits:5;
+ unsigned traits:6;
unsigned topology:3;
unsigned descriptorType:1;
unsigned renderPassType:1;
- unsigned unused:19;
+ unsigned unused:18;
} u;
uint32_t value;
} key;
diff --git a/libkwineffects/kwinvulkanutils.h b/libkwineffects/kwinvulkanutils.h
index 34d1b24f6..5ba0ee4de 100644
--- a/libkwineffects/kwinvulkanutils.h
+++ b/libkwineffects/kwinvulkanutils.h
@@ -3368,6 +3368,9 @@ public:
Modulate = (1 << 1),
Desaturate = (1 << 2),
CrossFade = (1 << 3),
+ CullFront = (1 << 4),
+ CullBack = (1 << 5),
+ CullFrontAndBack = (CullFront | CullBack)
};
Q_DECLARE_FLAGS(Traits, Trait);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic