Skip to content

Commit 40ca093

Browse files
committed
Merge pull request #80311 from darksylinc/matias-fullscreen-tri
Use fullscreen tri instead of quad
2 parents 750f1a6 + 79c9eda commit 40ca093

17 files changed

+48
-99
lines changed

servers/rendering/renderer_rd/effects/bokeh_dof.cpp

+6-12
Original file line numberDiff line numberDiff line change
@@ -359,11 +359,10 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr
359359
RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin(framebuffer, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_READ, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_DISCARD);
360360
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, bokeh.raster_pipelines[BOKEH_GEN_BLUR_SIZE].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(framebuffer)));
361361
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_depth_texture), 0);
362-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
363362

364363
RD::get_singleton()->draw_list_set_push_constant(draw_list, &bokeh.push_constant, sizeof(BokehPushConstant));
365364

366-
RD::get_singleton()->draw_list_draw(draw_list, true);
365+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
367366
RD::get_singleton()->draw_list_end();
368367
}
369368

@@ -393,11 +392,10 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr
393392
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, bokeh.raster_pipelines[mode].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(framebuffer)));
394393
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_base_texture), 0);
395394
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_weight_texture0), 1);
396-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
397395

398396
RD::get_singleton()->draw_list_set_push_constant(draw_list, &bokeh.push_constant, sizeof(BokehPushConstant));
399397

400-
RD::get_singleton()->draw_list_draw(draw_list, true);
398+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
401399
RD::get_singleton()->draw_list_end();
402400

403401
// Pass 2
@@ -418,11 +416,10 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr
418416
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, bokeh.raster_pipelines[mode].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(framebuffer)));
419417
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, texture), 0);
420418
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, weight), 1);
421-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
422419

423420
RD::get_singleton()->draw_list_set_push_constant(draw_list, &bokeh.push_constant, sizeof(BokehPushConstant));
424421

425-
RD::get_singleton()->draw_list_draw(draw_list, true);
422+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
426423
RD::get_singleton()->draw_list_end();
427424

428425
if (bokeh.push_constant.half_size) {
@@ -438,11 +435,10 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr
438435
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_half_texture1), 0);
439436
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_weight_texture3), 1);
440437
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 2, u_weight_texture0), 2);
441-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
442438

443439
RD::get_singleton()->draw_list_set_push_constant(draw_list, &bokeh.push_constant, sizeof(BokehPushConstant));
444440

445-
RD::get_singleton()->draw_list_draw(draw_list, true);
441+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
446442
RD::get_singleton()->draw_list_end();
447443
}
448444

@@ -471,11 +467,10 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr
471467
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, bokeh.raster_pipelines[mode].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(framebuffer)));
472468
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_base_texture), 0);
473469
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_weight_texture0), 1);
474-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
475470

476471
RD::get_singleton()->draw_list_set_push_constant(draw_list, &bokeh.push_constant, sizeof(BokehPushConstant));
477472

478-
RD::get_singleton()->draw_list_draw(draw_list, true);
473+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
479474
RD::get_singleton()->draw_list_end();
480475

481476
if (bokeh.push_constant.half_size) {
@@ -491,11 +486,10 @@ void BokehDOF::bokeh_dof_raster(const BokehBuffers &p_buffers, RID p_camera_attr
491486
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_half_texture0), 0);
492487
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_weight_texture2), 1);
493488
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 2, u_weight_texture0), 2);
494-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
495489

496490
RD::get_singleton()->draw_list_set_push_constant(draw_list, &bokeh.push_constant, sizeof(BokehPushConstant));
497491

498-
RD::get_singleton()->draw_list_draw(draw_list, true);
492+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
499493
RD::get_singleton()->draw_list_end();
500494
} else {
501495
CopyEffects::get_singleton()->copy_raster(p_buffers.secondary_texture, p_buffers.base_fb);

servers/rendering/renderer_rd/effects/copy_effects.cpp

+7-15
Original file line numberDiff line numberDiff line change
@@ -696,11 +696,9 @@ void CopyEffects::gaussian_blur_raster(RID p_source_rd_texture, RID p_dest_textu
696696
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, blur_raster.pipelines[blur_mode].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(dest_framebuffer)));
697697
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_source_rd_texture), 0);
698698

699-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
700-
701699
RD::get_singleton()->draw_list_set_push_constant(draw_list, &blur_raster.push_constant, sizeof(BlurRasterPushConstant));
702700

703-
RD::get_singleton()->draw_list_draw(draw_list, true);
701+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
704702
RD::get_singleton()->draw_list_end();
705703
}
706704

@@ -803,12 +801,11 @@ void CopyEffects::gaussian_glow_raster(RID p_source_rd_texture, RID p_half_textu
803801
RD::Uniform u_auto_exposure(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector<RID>({ default_sampler, p_auto_exposure }));
804802
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_auto_exposure), 1);
805803
}
806-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
807804

808805
blur_raster.push_constant.flags = base_flags | BLUR_FLAG_HORIZONTAL | (p_first_pass ? BLUR_FLAG_GLOW_FIRST_PASS : 0);
809806
RD::get_singleton()->draw_list_set_push_constant(draw_list, &blur_raster.push_constant, sizeof(BlurRasterPushConstant));
810807

811-
RD::get_singleton()->draw_list_draw(draw_list, true);
808+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
812809
RD::get_singleton()->draw_list_end();
813810

814811
blur_mode = BLUR_MODE_GAUSSIAN_GLOW;
@@ -820,12 +817,11 @@ void CopyEffects::gaussian_glow_raster(RID p_source_rd_texture, RID p_half_textu
820817
draw_list = RD::get_singleton()->draw_list_begin(dest_framebuffer, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_READ, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_DISCARD);
821818
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, blur_raster.pipelines[blur_mode].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(dest_framebuffer)));
822819
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_half_texture), 0);
823-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
824820

825821
blur_raster.push_constant.flags = base_flags;
826822
RD::get_singleton()->draw_list_set_push_constant(draw_list, &blur_raster.push_constant, sizeof(BlurRasterPushConstant));
827823

828-
RD::get_singleton()->draw_list_draw(draw_list, true);
824+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
829825
RD::get_singleton()->draw_list_end();
830826
}
831827

@@ -1055,11 +1051,10 @@ void CopyEffects::cubemap_downsample_raster(RID p_source_cubemap, RID p_dest_fra
10551051
RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin(p_dest_framebuffer, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_READ, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_DISCARD);
10561052
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, cubemap_downsampler.raster_pipeline.get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(p_dest_framebuffer)));
10571053
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_source_cubemap), 0);
1058-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
10591054

10601055
RD::get_singleton()->draw_list_set_push_constant(draw_list, &cubemap_downsampler.push_constant, sizeof(CubemapDownsamplerPushConstant));
10611056

1062-
RD::get_singleton()->draw_list_draw(draw_list, true);
1057+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
10631058
RD::get_singleton()->draw_list_end();
10641059
}
10651060

@@ -1136,11 +1131,10 @@ void CopyEffects::cubemap_filter_raster(RID p_source_cubemap, RID p_dest_framebu
11361131
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, filter.raster_pipelines[mode].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(p_dest_framebuffer)));
11371132
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_source_cubemap), 0);
11381133
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, filter.uniform_set, 1);
1139-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
11401134

11411135
RD::get_singleton()->draw_list_set_push_constant(draw_list, &push_constant, sizeof(CubemapFilterRasterPushConstant));
11421136

1143-
RD::get_singleton()->draw_list_draw(draw_list, true);
1137+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
11441138
RD::get_singleton()->draw_list_end();
11451139
}
11461140

@@ -1214,11 +1208,10 @@ void CopyEffects::cubemap_roughness_raster(RID p_source_rd_texture, RID p_dest_f
12141208
RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin(p_dest_framebuffer, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_READ, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_DISCARD);
12151209
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, roughness.raster_pipeline.get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(p_dest_framebuffer)));
12161210
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_source_rd_texture), 0);
1217-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
12181211

12191212
RD::get_singleton()->draw_list_set_push_constant(draw_list, &roughness.push_constant, sizeof(CubemapRoughnessPushConstant));
12201213

1221-
RD::get_singleton()->draw_list_draw(draw_list, true);
1214+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
12221215
RD::get_singleton()->draw_list_end();
12231216
}
12241217

@@ -1269,8 +1262,7 @@ void CopyEffects::merge_specular(RID p_dest_framebuffer, RID p_specular, RID p_b
12691262
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_reflection), 1);
12701263
}
12711264

1272-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
1273-
RD::get_singleton()->draw_list_draw(draw_list, true);
1265+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
12741266
RD::get_singleton()->draw_list_end();
12751267

12761268
RD::get_singleton()->draw_command_end_label();

servers/rendering/renderer_rd/effects/luminance.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,10 @@ void Luminance::luminance_reduction(RID p_source_texture, const Size2i p_source_
191191
RD::Uniform u_current_texture(RD::UNIFORM_TYPE_SAMPLER_WITH_TEXTURE, 0, Vector<RID>({ default_sampler, p_luminance_buffers->current }));
192192
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_current_texture), 1);
193193
}
194-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
195194

196195
RD::get_singleton()->draw_list_set_push_constant(draw_list, &push_constant, sizeof(LuminanceReduceRasterPushConstant));
197196

198-
RD::get_singleton()->draw_list_draw(draw_list, true);
197+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
199198
RD::get_singleton()->draw_list_end();
200199
}
201200
} else {

servers/rendering/renderer_rd/effects/tone_mapper.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,9 @@ void ToneMapper::tonemapper(RID p_source_color, RID p_dst_framebuffer, const Ton
170170
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 1, u_exposure_texture), 1);
171171
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 2, u_glow_texture, u_glow_map), 2);
172172
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 3, u_color_correction_texture), 3);
173-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
174173

175174
RD::get_singleton()->draw_list_set_push_constant(draw_list, &tonemap.push_constant, sizeof(TonemapPushConstant));
176-
RD::get_singleton()->draw_list_draw(draw_list, true);
175+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
177176
RD::get_singleton()->draw_list_end();
178177
}
179178

@@ -250,8 +249,7 @@ void ToneMapper::tonemapper(RD::DrawListID p_subpass_draw_list, RID p_source_col
250249
RD::get_singleton()->draw_list_bind_uniform_set(p_subpass_draw_list, uniform_set_cache->get_cache(shader, 1, u_exposure_texture), 1); // should be set to a default texture, it's ignored
251250
RD::get_singleton()->draw_list_bind_uniform_set(p_subpass_draw_list, uniform_set_cache->get_cache(shader, 2, u_glow_texture, u_glow_map), 2); // should be set to a default texture, it's ignored
252251
RD::get_singleton()->draw_list_bind_uniform_set(p_subpass_draw_list, uniform_set_cache->get_cache(shader, 3, u_color_correction_texture), 3);
253-
RD::get_singleton()->draw_list_bind_index_array(p_subpass_draw_list, material_storage->get_quad_index_array());
254252

255253
RD::get_singleton()->draw_list_set_push_constant(p_subpass_draw_list, &tonemap.push_constant, sizeof(TonemapPushConstant));
256-
RD::get_singleton()->draw_list_draw(p_subpass_draw_list, true);
254+
RD::get_singleton()->draw_list_draw(p_subpass_draw_list, false, 1u, 0u);
257255
}

servers/rendering/renderer_rd/effects/vrs.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,8 @@ void VRS::copy_vrs(RID p_source_rd_texture, RID p_dest_framebuffer, bool p_multi
8585
RD::DrawListID draw_list = RD::get_singleton()->draw_list_begin(p_dest_framebuffer, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_READ, RD::INITIAL_ACTION_KEEP, RD::FINAL_ACTION_DISCARD, Vector<Color>());
8686
RD::get_singleton()->draw_list_bind_render_pipeline(draw_list, vrs_shader.pipelines[mode].get_render_pipeline(RD::INVALID_ID, RD::get_singleton()->framebuffer_get_format(p_dest_framebuffer)));
8787
RD::get_singleton()->draw_list_bind_uniform_set(draw_list, uniform_set_cache->get_cache(shader, 0, u_source_rd_texture), 0);
88-
RD::get_singleton()->draw_list_bind_index_array(draw_list, material_storage->get_quad_index_array());
8988
// RD::get_singleton()->draw_list_set_push_constant(draw_list, &vrs_shader.push_constant, sizeof(VRSPushConstant));
90-
RD::get_singleton()->draw_list_draw(draw_list, true);
89+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
9190
RD::get_singleton()->draw_list_end();
9291
}
9392

servers/rendering/renderer_rd/environment/sky.cpp

+1-22
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,9 @@ void SkyRD::_render_sky(RD::DrawListID p_list, float p_time, RID p_fb, PipelineC
249249
}
250250
}
251251

252-
RD::get_singleton()->draw_list_bind_index_array(draw_list, index_array);
253-
254252
RD::get_singleton()->draw_list_set_push_constant(draw_list, &sky_push_constant, sizeof(SkyPushConstant));
255253

256-
RD::get_singleton()->draw_list_draw(draw_list, true);
254+
RD::get_singleton()->draw_list_draw(draw_list, false, 1u, 3u);
257255
}
258256

259257
////////////////////////////////////////////////////////////////////////////////
@@ -941,23 +939,6 @@ void sky() {
941939

942940
sky_scene_state.fog_only_texture_uniform_set = RD::get_singleton()->uniform_set_create(uniforms, sky_shader.default_shader_rd, SKY_SET_TEXTURES);
943941
}
944-
945-
{ //create index array for copy shaders
946-
Vector<uint8_t> pv;
947-
pv.resize(6 * 4);
948-
{
949-
uint8_t *w = pv.ptrw();
950-
int *p32 = (int *)w;
951-
p32[0] = 0;
952-
p32[1] = 1;
953-
p32[2] = 2;
954-
p32[3] = 0;
955-
p32[4] = 2;
956-
p32[5] = 3;
957-
}
958-
index_buffer = RD::get_singleton()->index_buffer_create(6, RenderingDevice::INDEX_BUFFER_FORMAT_UINT32, pv);
959-
index_array = RD::get_singleton()->index_array_create(index_buffer, 0, 6);
960-
}
961942
}
962943

963944
void SkyRD::set_texture_format(RD::DataFormat p_texture_format) {
@@ -990,8 +971,6 @@ SkyRD::~SkyRD() {
990971
if (RD::get_singleton()->uniform_set_is_valid(sky_scene_state.fog_only_texture_uniform_set)) {
991972
RD::get_singleton()->free(sky_scene_state.fog_only_texture_uniform_set);
992973
}
993-
994-
RD::get_singleton()->free(index_buffer); //array gets freed as dependency
995974
}
996975

997976
void SkyRD::setup_sky(RID p_env, Ref<RenderSceneBuffersRD> p_render_buffers, const PagedArray<RID> &p_lights, RID p_camera_attributes, uint32_t p_view_count, const Projection *p_view_projections, const Vector3 *p_view_eye_offsets, const Transform3D &p_cam_transform, const Projection &p_cam_projection, const Size2i p_screen_size, RendererSceneRenderRD *p_scene_render) {

servers/rendering/renderer_rd/environment/sky.h

-3
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,6 @@ class SkyRD {
7070
private:
7171
RD::DataFormat texture_format = RD::DATA_FORMAT_R16G16B16A16_SFLOAT;
7272

73-
RID index_buffer;
74-
RID index_array;
75-
7673
enum SkyTextureSetVersion {
7774
SKY_TEXTURE_SET_BACKGROUND,
7875
SKY_TEXTURE_SET_HALF_RES,

servers/rendering/renderer_rd/shaders/effects/blur_raster.glsl

+3-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ layout(location = 0) out vec2 uv_interp;
1111
/* clang-format on */
1212

1313
void main() {
14-
vec2 base_arr[4] = vec2[](vec2(0.0, 0.0), vec2(0.0, 1.0), vec2(1.0, 1.0), vec2(1.0, 0.0));
15-
uv_interp = base_arr[gl_VertexIndex];
16-
17-
gl_Position = vec4(uv_interp * 2.0 - 1.0, 0.0, 1.0);
14+
vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
15+
gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
16+
uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
1817
}
1918

2019
/* clang-format off */

servers/rendering/renderer_rd/shaders/effects/bokeh_dof_raster.glsl

+3-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ layout(location = 0) out vec2 uv_interp;
1111
/* clang-format on */
1212

1313
void main() {
14-
vec2 base_arr[4] = vec2[](vec2(0.0, 0.0), vec2(0.0, 1.0), vec2(1.0, 1.0), vec2(1.0, 0.0));
15-
uv_interp = base_arr[gl_VertexIndex];
16-
17-
gl_Position = vec4(uv_interp * 2.0 - 1.0, 0.0, 1.0);
14+
vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
15+
gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
16+
uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
1817
}
1918

2019
/* clang-format off */

servers/rendering/renderer_rd/shaders/effects/cubemap_downsampler_raster.glsl

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ layout(location = 0) out vec2 uv_interp;
3131
/* clang-format on */
3232

3333
void main() {
34-
vec2 base_arr[4] = vec2[](vec2(0.0, 0.0), vec2(0.0, 1.0), vec2(1.0, 1.0), vec2(1.0, 0.0));
35-
uv_interp = base_arr[gl_VertexIndex] * float(params.face_size);
36-
gl_Position = vec4(base_arr[gl_VertexIndex] * 2.0 - 1.0, 0.0, 1.0);
34+
vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
35+
gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
36+
uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
3737
}
3838

3939
/* clang-format off */

servers/rendering/renderer_rd/shaders/effects/cubemap_filter_raster.glsl

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ layout(location = 0) out vec2 uv_interp;
3535
/* clang-format on */
3636

3737
void main() {
38-
vec2 base_arr[4] = vec2[](vec2(0.0, 0.0), vec2(0.0, 1.0), vec2(1.0, 1.0), vec2(1.0, 0.0));
39-
uv_interp = base_arr[gl_VertexIndex];
40-
gl_Position = vec4(base_arr[gl_VertexIndex] * 2.0 - 1.0, 0.0, 1.0);
38+
vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
39+
gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
40+
uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
4141
}
4242

4343
/* clang-format off */

0 commit comments

Comments
 (0)