Forbid passing multiview sampler to the custom function in shaders

This commit is contained in:
Yuri Rubinsky 2023-01-29 12:14:22 +03:00
parent 6cde3fac32
commit 94831c7209
16 changed files with 50 additions and 21 deletions

View file

@ -198,7 +198,11 @@ void RasterizerGLES3::finalize() {
memdelete(config);
}
RasterizerGLES3 *RasterizerGLES3::singleton = nullptr;
RasterizerGLES3::RasterizerGLES3() {
singleton = this;
#ifdef GLAD_ENABLED
if (!gladLoaderLoadGL()) {
ERR_PRINT("Error initializing GLAD");

View file

@ -67,6 +67,7 @@ protected:
GLES3::CopyEffects *copy_effects = nullptr;
RasterizerCanvasGLES3 *canvas = nullptr;
RasterizerSceneGLES3 *scene = nullptr;
static RasterizerGLES3 *singleton;
void _blit_render_target_to_screen(RID p_render_target, DisplayServer::WindowID p_screen, const Rect2 &p_screen_rect, uint32_t p_layer, bool p_first = true);
@ -107,6 +108,7 @@ public:
_ALWAYS_INLINE_ double get_frame_delta_time() const { return delta; }
_ALWAYS_INLINE_ double get_total_time() const { return time_total; }
static RasterizerGLES3 *get_singleton() { return singleton; }
RasterizerGLES3();
~RasterizerGLES3();
};

View file

@ -38,6 +38,7 @@
#include "texture_storage.h"
#include "drivers/gles3/rasterizer_canvas_gles3.h"
#include "drivers/gles3/rasterizer_gles3.h"
using namespace GLES3;
@ -1721,7 +1722,7 @@ MaterialStorage::MaterialStorage() {
actions.default_filter = ShaderLanguage::FILTER_LINEAR_MIPMAP;
actions.default_repeat = ShaderLanguage::REPEAT_ENABLE;
actions.check_multiview_samplers = true;
actions.check_multiview_samplers = RasterizerGLES3::get_singleton()->is_xr_enabled();
actions.global_buffer_array_variable = "global_shader_uniforms";
shaders.compiler_scene.initialize(actions);