1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-10 13:00:37 +00:00

Add depth resolve to the mobile renderer

This commit is contained in:
clayjohn
2025-07-15 05:37:09 -07:00
parent d5cb0f948e
commit a8efa55bed
8 changed files with 131 additions and 27 deletions

View File

@@ -30,12 +30,16 @@
#pragma once
#include "servers/rendering/renderer_rd/pipeline_cache_rd.h"
#include "servers/rendering/renderer_rd/shaders/effects/resolve.glsl.gen.h"
#include "servers/rendering/renderer_rd/shaders/effects/resolve_raster.glsl.gen.h"
namespace RendererRD {
class Resolve {
private:
bool prefer_raster_effects;
struct ResolvePushConstant {
int32_t screen_size[2];
int32_t samples;
@@ -56,12 +60,20 @@ private:
RID pipelines[RESOLVE_MODE_MAX]; //3 quality levels
} resolve;
struct ResolveRasterShader {
ResolvePushConstant push_constant;
ResolveRasterShaderRD shader;
RID shader_version;
PipelineCacheRD pipeline;
} resolve_raster;
public:
Resolve();
Resolve(bool p_prefer_raster_effects);
~Resolve();
void resolve_gi(RID p_source_depth, RID p_source_normal_roughness, RID p_source_voxel_gi, RID p_dest_depth, RID p_dest_normal_roughness, RID p_dest_voxel_gi, Vector2i p_screen_size, int p_samples);
void resolve_depth(RID p_source_depth, RID p_dest_depth, Vector2i p_screen_size, int p_samples);
void resolve_depth_raster(RID p_source_rd_texture, RID p_dest_framebuffer, int p_samples);
};
} // namespace RendererRD