@@ -179,13 +179,13 @@ void RenderSceneBuffersRD::configure(const RenderSceneBuffersConfiguration *p_co
179179
180180 // Create our color buffer.
181181 const bool resolve_target = msaa_3d != RS ::VIEWPORT_MSAA_DISABLED ;
182- create_texture (RB_SCOPE_BUFFERS , RB_TEX_COLOR , get_base_data_format (), get_color_usage_bits (resolve_target, false , can_be_storage));
182+ create_texture (RB_SCOPE_BUFFERS , RB_TEX_COLOR , get_base_data_format (), get_color_usage_bits (resolve_target, false , can_be_storage), RD :: TEXTURE_SAMPLES_1 , Size2i (), 0 , 1 , true , true );
183183
184184 // TODO: Detect when it is safe to use RD::TEXTURE_USAGE_TRANSIENT_BIT for RB_TEX_DEPTH, RB_TEX_COLOR_MSAA and/or RB_TEX_DEPTH_MSAA.
185185 // (it means we cannot sample from it, we cannot copy from/to it) to save VRAM (and maybe performance too).
186186
187187 // Create our depth buffer.
188- create_texture (RB_SCOPE_BUFFERS , RB_TEX_DEPTH , get_depth_format (resolve_target, false , can_be_storage), get_depth_usage_bits (resolve_target, false , can_be_storage));
188+ create_texture (RB_SCOPE_BUFFERS , RB_TEX_DEPTH , get_depth_format (resolve_target, false , can_be_storage), get_depth_usage_bits (resolve_target, false , can_be_storage), RD :: TEXTURE_SAMPLES_1 , Size2i (), 0 , 1 , true , true );
189189
190190 // Create our MSAA buffers.
191191 if (msaa_3d == RS ::VIEWPORT_MSAA_DISABLED ) {
@@ -199,7 +199,7 @@ void RenderSceneBuffersRD::configure(const RenderSceneBuffersConfiguration *p_co
199199 // VRS (note, our vrs object will only be set if VRS is supported)
200200 RID vrs_texture;
201201 if (vrs && vrs_mode != RS ::VIEWPORT_VRS_DISABLED ) {
202- vrs_texture = create_texture (RB_SCOPE_VRS , RB_TEXTURE , get_vrs_format (), get_vrs_usage_bits (), RD ::TEXTURE_SAMPLES_1 , vrs->get_vrs_texture_size (internal_size));
202+ vrs_texture = create_texture (RB_SCOPE_VRS , RB_TEXTURE , get_vrs_format (), get_vrs_usage_bits (), RD ::TEXTURE_SAMPLES_1 , vrs->get_vrs_texture_size (internal_size), 0 , 1 , true , true );
203203 }
204204
205205 // (re-)configure any named buffers
@@ -527,8 +527,8 @@ void RenderSceneBuffersRD::allocate_blur_textures() {
527527 usage_bits += RD ::TEXTURE_USAGE_COLOR_ATTACHMENT_BIT ;
528528 }
529529
530- create_texture (RB_SCOPE_BUFFERS , RB_TEX_BLUR_0 , get_base_data_format (), usage_bits, RD ::TEXTURE_SAMPLES_1 , blur_size, view_count, mipmaps_required);
531- create_texture (RB_SCOPE_BUFFERS , RB_TEX_BLUR_1 , get_base_data_format (), usage_bits, RD ::TEXTURE_SAMPLES_1 , Size2i (blur_size.x >> 1 , blur_size.y >> 1 ), view_count, mipmaps_required - 1 );
530+ create_texture (RB_SCOPE_BUFFERS , RB_TEX_BLUR_0 , get_base_data_format (), usage_bits, RD ::TEXTURE_SAMPLES_1 , blur_size, view_count, mipmaps_required, true , true );
531+ create_texture (RB_SCOPE_BUFFERS , RB_TEX_BLUR_1 , get_base_data_format (), usage_bits, RD ::TEXTURE_SAMPLES_1 , Size2i (blur_size.x >> 1 , blur_size.y >> 1 ), view_count, mipmaps_required - 1 , true , true );
532532
533533 // TODO redo this:
534534 if (!can_be_storage) {
@@ -643,7 +643,7 @@ void RenderSceneBuffersRD::ensure_upscaled() {
643643 if (!has_upscaled_texture ()) {
644644 uint32_t usage_bits = RD ::TEXTURE_USAGE_SAMPLING_BIT | (can_be_storage ? RD ::TEXTURE_USAGE_STORAGE_BIT : 0 ) | RD ::TEXTURE_USAGE_COLOR_ATTACHMENT_BIT ;
645645 usage_bits |= RD ::TEXTURE_USAGE_INPUT_ATTACHMENT_BIT ;
646- create_texture (RB_SCOPE_BUFFERS , RB_TEX_COLOR_UPSCALED , get_base_data_format (), usage_bits, RD ::TEXTURE_SAMPLES_1 , target_size);
646+ create_texture (RB_SCOPE_BUFFERS , RB_TEX_COLOR_UPSCALED , get_base_data_format (), usage_bits, RD ::TEXTURE_SAMPLES_1 , target_size, 0 , 1 , true , true );
647647 }
648648}
649649
@@ -652,10 +652,10 @@ void RenderSceneBuffersRD::ensure_upscaled() {
652652void RenderSceneBuffersRD::ensure_velocity () {
653653 if (!has_texture (RB_SCOPE_BUFFERS , RB_TEX_VELOCITY )) {
654654 const bool msaa = msaa_3d != RS ::VIEWPORT_MSAA_DISABLED ;
655- create_texture (RB_SCOPE_BUFFERS , RB_TEX_VELOCITY , get_velocity_format (), get_velocity_usage_bits (msaa, false , can_be_storage));
655+ create_texture (RB_SCOPE_BUFFERS , RB_TEX_VELOCITY , get_velocity_format (), get_velocity_usage_bits (msaa, false , can_be_storage), RD :: TEXTURE_SAMPLES_1 , Size2i (), 0 , 1 , true , true );
656656
657657 if (msaa) {
658- create_texture (RB_SCOPE_BUFFERS , RB_TEX_VELOCITY_MSAA , get_velocity_format (), get_velocity_usage_bits (false , msaa, can_be_storage), texture_samples);
658+ create_texture (RB_SCOPE_BUFFERS , RB_TEX_VELOCITY_MSAA , get_velocity_format (), get_velocity_usage_bits (false , msaa, can_be_storage), texture_samples, Size2i (), 0 , 1 , true , true );
659659 }
660660 }
661661}
0 commit comments