Skip to content

Commit a3b42d8

Browse files
committed
Merge pull request #109406 from stuartcarnie/metal_fx_spatial_fix
Metal: Ensure correct output texture format selection
2 parents 96cf513 + c8b5982 commit a3b42d8

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,11 +255,20 @@ void RenderSceneBuffersRD::ensure_mfx(RendererRD::MFXSpatialEffect *p_effect) {
255255
if (mfx_spatial_context) {
256256
return;
257257
}
258+
259+
RendererRD::TextureStorage *texture_storage = RendererRD::TextureStorage::get_singleton();
260+
RenderingDevice *rd = RD::get_singleton();
261+
262+
// Determine the output format of the render target.
263+
RID dest = texture_storage->render_target_get_rd_texture(render_target);
264+
RD::TextureFormat tf = rd->texture_get_format(dest);
265+
RD::DataFormat output_format = tf.format;
266+
258267
RendererRD::MFXSpatialEffect::CreateParams params = {
259268
.input_size = internal_size,
260269
.output_size = target_size,
261270
.input_format = base_data_format,
262-
.output_format = RD::DATA_FORMAT_R8G8B8A8_UNORM,
271+
.output_format = output_format,
263272
};
264273

265274
mfx_spatial_context = p_effect->create_context(params);

servers/rendering/renderer_viewport.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1352,6 +1352,7 @@ void RendererViewport::viewport_set_use_hdr_2d(RID p_viewport, bool p_use_hdr_2d
13521352
}
13531353
viewport->use_hdr_2d = p_use_hdr_2d;
13541354
RSG::texture_storage->render_target_set_use_hdr(viewport->render_target, p_use_hdr_2d);
1355+
_configure_3d_render_buffers(viewport);
13551356
}
13561357

13571358
bool RendererViewport::viewport_is_using_hdr_2d(RID p_viewport) const {

0 commit comments

Comments
 (0)