Merge pull request #78200 from prominentdetail/patch-3

Properly handle wireframe mode in RendererRD pipeline cache
This commit is contained in:
Rémi Verschelde 2023-06-14 09:27:10 +02:00
commit 16c2fede71
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 3 additions and 1 deletions

View File

@ -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;

View File

@ -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) {