diff options
| author | Alex <thekonspiracy@hotmail.com> | 2023-06-13 18:42:07 -0500 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-06-14 09:14:34 +0200 |
| commit | f74464b767c6cd60795bbdcdda2fdeafd09942bc (patch) | |
| tree | d0df09cd95dd3aedce9ea490d6ffe0c95f24b1ed | |
| parent | eb86dabee07e8dfce3b06cbd557b50b74afd3d6c (diff) | |
| download | redot-engine-f74464b767c6cd60795bbdcdda2fdeafd09942bc.tar.gz | |
Properly handle wireframe mode in RendererRD pipeline cache
Makes wireframe get cached properly so that it doesn't keep being recreated.
Fixes #76237.
| -rw-r--r-- | servers/rendering/renderer_rd/pipeline_cache_rd.cpp | 2 | ||||
| -rw-r--r-- | servers/rendering/renderer_rd/pipeline_cache_rd.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/pipeline_cache_rd.cpp b/servers/rendering/renderer_rd/pipeline_cache_rd.cpp index 17051d1954..f3595c5917 100644 --- a/servers/rendering/renderer_rd/pipeline_cache_rd.cpp +++ b/servers/rendering/renderer_rd/pipeline_cache_rd.cpp @@ -36,7 +36,7 @@ RID PipelineCacheRD::_generate_version(RD::VertexFormatID p_vertex_format_id, RD RD::PipelineMultisampleState multisample_state_version = multisample_state; multisample_state_version.sample_count = RD::get_singleton()->framebuffer_format_get_texture_samples(p_framebuffer_format_id, p_render_pass); - bool wireframe = p_wireframe || rasterization_state.wireframe; + bool wireframe = p_wireframe; RD::PipelineRasterizationState raster_state_version = rasterization_state; raster_state_version.wireframe = wireframe; diff --git a/servers/rendering/renderer_rd/pipeline_cache_rd.h b/servers/rendering/renderer_rd/pipeline_cache_rd.h index 0b12dab416..58c1278312 100644 --- a/servers/rendering/renderer_rd/pipeline_cache_rd.h +++ b/servers/rendering/renderer_rd/pipeline_cache_rd.h @@ -76,6 +76,8 @@ public: #endif spin_lock.lock(); + p_wireframe |= rasterization_state.wireframe; + RID result; for (uint32_t i = 0; i < version_count; i++) { if (versions[i].vertex_id == p_vertex_format_id && versions[i].framebuffer_id == p_framebuffer_format_id && versions[i].wireframe == p_wireframe && versions[i].render_pass == p_render_pass && versions[i].bool_specializations == p_bool_specializations) { |
