diff --git a/src/vkcv/Core.cpp b/src/vkcv/Core.cpp
index 88fc479473e9fe09a8547c21e322017bd73dc61a..a07d25836e4b541a023665e12b902b2880027eb4 100644
--- a/src/vkcv/Core.cpp
+++ b/src/vkcv/Core.cpp
@@ -52,7 +52,7 @@ namespace vkcv
     Core::Core(Context &&context, const CommandResources& commandResources, const SyncResources& syncResources) noexcept :
             m_Context(std::move(context)),
             m_PassManager{std::make_unique<PassManager>(m_Context.m_Device)},
-            m_PipelineManager{std::make_unique<GraphicsPipelineManager>(m_Context.m_Device)},
+            m_PipelineManager{std::make_unique<GraphicsPipelineManager>(m_Context.m_Device, m_Context.m_PhysicalDevice)},
             m_ComputePipelineManager{std::make_unique<ComputePipelineManager>(m_Context.m_Device)},
             m_DescriptorManager(std::make_unique<DescriptorManager>(m_Context.m_Device)),
             m_BufferManager{std::unique_ptr<BufferManager>(new BufferManager())},
diff --git a/src/vkcv/GraphicsPipelineManager.cpp b/src/vkcv/GraphicsPipelineManager.cpp
index cb7dd31dddd3a5c0742f95e8429175724aa26454..870220f45b52c022f7c2d445a40e99ab4a6a4a2f 100644
--- a/src/vkcv/GraphicsPipelineManager.cpp
+++ b/src/vkcv/GraphicsPipelineManager.cpp
@@ -5,8 +5,9 @@
 namespace vkcv
 {
 	
-	GraphicsPipelineManager::GraphicsPipelineManager(vk::Device device) noexcept :
-            m_Device{device},
+	GraphicsPipelineManager::GraphicsPipelineManager(vk::Device device, vk::PhysicalDevice physicalDevice) noexcept :
+            m_Device(device),
+            m_physicalDevice(physicalDevice),
             m_Pipelines{}
     {}
 	
@@ -237,7 +238,9 @@ namespace vkcv
 	 * @param config sets Depth Clamping and Culling Mode
 	 * @return Pipeline Rasterization State Create Info Struct
 	 */
-	vk::PipelineRasterizationStateCreateInfo createPipelineRasterizationStateCreateInfo(const GraphicsPipelineConfig &config) {
+	vk::PipelineRasterizationStateCreateInfo createPipelineRasterizationStateCreateInfo(
+		const GraphicsPipelineConfig &config,
+		const vk::PhysicalDeviceConservativeRasterizationPropertiesEXT& conservativeRasterProperties) {
 		vk::CullModeFlags cullMode;
 		switch (config.m_culling) {
 			case CullMode::None:
@@ -267,14 +270,14 @@ namespace vkcv
 				0.f,
 				1.f
 		);
-		
+
 		static vk::PipelineRasterizationConservativeStateCreateInfoEXT conservativeRasterization;
 		
 		if (config.m_UseConservativeRasterization) {
 			conservativeRasterization = vk::PipelineRasterizationConservativeStateCreateInfoEXT(
 					{},
 					vk::ConservativeRasterizationModeEXT::eOverestimate,
-					0.f
+					std::max(1 - conservativeRasterProperties.primitiveOverestimationSize, 0.f)
 			);
 			
 			pipelineRasterizationStateCreateInfo.pNext = &conservativeRasterization;
@@ -544,8 +547,13 @@ namespace vkcv
                 createPipelineViewportStateCreateInfo(config);
 
         // rasterization state
+        vk::PhysicalDeviceConservativeRasterizationPropertiesEXT    conservativeRasterProperties;
+        vk::PhysicalDeviceProperties                                deviceProperties;
+        vk::PhysicalDeviceProperties2                               deviceProperties2(deviceProperties);
+        deviceProperties2.pNext = &conservativeRasterProperties;
+        m_physicalDevice.getProperties2(&deviceProperties2);
         vk::PipelineRasterizationStateCreateInfo pipelineRasterizationStateCreateInfo =
-                createPipelineRasterizationStateCreateInfo(config);
+                createPipelineRasterizationStateCreateInfo(config, conservativeRasterProperties);
 
         // multisample state
         vk::PipelineMultisampleStateCreateInfo pipelineMultisampleStateCreateInfo =
diff --git a/src/vkcv/GraphicsPipelineManager.hpp b/src/vkcv/GraphicsPipelineManager.hpp
index a08e64939dc967511095f22862c52de05148d7e9..782603ab0e1ffa9bde05fda96c5d2d259eff1953 100644
--- a/src/vkcv/GraphicsPipelineManager.hpp
+++ b/src/vkcv/GraphicsPipelineManager.hpp
@@ -20,7 +20,7 @@ namespace vkcv
     {
     public:
 		GraphicsPipelineManager() = delete; // no default ctor
-        explicit GraphicsPipelineManager(vk::Device device) noexcept; // ctor
+        explicit GraphicsPipelineManager(vk::Device device, vk::PhysicalDevice physicalDevice) noexcept; // ctor
         ~GraphicsPipelineManager() noexcept; // dtor
 	
 		GraphicsPipelineManager(const GraphicsPipelineManager &other) = delete; // copy-ctor
@@ -71,8 +71,9 @@ namespace vkcv
 			GraphicsPipelineConfig m_config;
         };
 
-        vk::Device m_Device;
-        std::vector<GraphicsPipeline> m_Pipelines;
+        vk::Device                      m_Device;
+        vk::PhysicalDevice              m_physicalDevice; // needed to get infos to configure conservative rasterization
+        std::vector<GraphicsPipeline>   m_Pipelines;
 
         void destroyPipelineById(uint64_t id);