Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make precision of time_step consistently float. #41853

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions drivers/dummy/rasterizer_dummy.h
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ class RasterizerSceneDummy : public RendererSceneRender {
void render_particle_collider_heightfield(RID p_collider, const Transform &p_transform, const PagedArray<GeometryInstance *> &p_instances) override {}

void set_scene_pass(uint64_t p_pass) override {}
void set_time(double p_time, double p_step) override {}
void set_time(float p_time, float p_step) override {}
void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) override {}

RID render_buffers_create() override { return RID(); }
Expand Down Expand Up @@ -712,7 +712,7 @@ class RasterizerDummy : public RendererCompositor {
void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true) override {}

void initialize() override {}
void begin_frame(double frame_step) override {
void begin_frame(float frame_step) override {
frame++;
delta = frame_step;
}
Expand Down
4 changes: 2 additions & 2 deletions main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2419,8 +2419,8 @@ bool Main::iteration() {
float time_scale = Engine::get_singleton()->get_time_scale();

MainFrameTime advance = main_timer_sync.advance(physics_step, physics_fps);
double process_step = advance.process_step;
double scaled_step = process_step * time_scale;
float process_step = advance.process_step;
float scaled_step = process_step * time_scale;

Engine::get_singleton()->_process_step = process_step;
Engine::get_singleton()->_physics_interpolation_fraction = advance.interpolation_fraction;
Expand Down
2 changes: 1 addition & 1 deletion servers/rendering/renderer_compositor.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class RendererCompositor {
virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true) = 0;

virtual void initialize() = 0;
virtual void begin_frame(double frame_step) = 0;
virtual void begin_frame(float frame_step) = 0;

struct BlitToScreen {
RID render_target;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2362,7 +2362,7 @@ RendererStorageRD::MaterialData *RendererCanvasRenderRD::_create_material_func(S
return material_data;
}

void RendererCanvasRenderRD::set_time(double p_time) {
void RendererCanvasRenderRD::set_time(float p_time) {
state.time = p_time;
}

Expand Down
4 changes: 2 additions & 2 deletions servers/rendering/renderer_rd/renderer_canvas_render_rd.h
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ class RendererCanvasRenderRD : public RendererCanvasRender {
uint32_t max_lights_per_render;
uint32_t max_lights_per_item;

double time;
float time;

} state;

Expand Down Expand Up @@ -462,7 +462,7 @@ class RendererCanvasRenderRD : public RendererCanvasRender {

virtual void set_shadow_texture_size(int p_size);

void set_time(double p_time);
void set_time(float p_time);
void update();
bool free(RID p_rid);
RendererCanvasRenderRD(RendererStorageRD *p_storage);
Expand Down
4 changes: 2 additions & 2 deletions servers/rendering/renderer_rd/renderer_compositor_rd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,12 @@ void RendererCompositorRD::blit_render_targets_to_screen(DisplayServer::WindowID
RD::get_singleton()->draw_list_end();
}

void RendererCompositorRD::begin_frame(double frame_step) {
void RendererCompositorRD::begin_frame(float frame_step) {
frame++;
delta = frame_step;
time += frame_step;

double time_roll_over = GLOBAL_GET("rendering/limits/time/time_rollover_secs");
float time_roll_over = GLOBAL_GET("rendering/limits/time/time_rollover_secs");
time = Math::fmod(time, time_roll_over);

canvas->set_time(time);
Expand Down
6 changes: 3 additions & 3 deletions servers/rendering/renderer_rd/renderer_compositor_rd.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class RendererCompositorRD : public RendererCompositor {

Map<RID, RID> render_target_descriptors;

double time;
float time;
float delta;

static uint64_t frame;
Expand All @@ -65,7 +65,7 @@ class RendererCompositorRD : public RendererCompositor {
void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter) {}

void initialize();
void begin_frame(double frame_step);
void begin_frame(float frame_step);
void prepare_for_blitting_render_targets();
void blit_render_targets_to_screen(DisplayServer::WindowID p_screen, const BlitToScreen *p_render_targets, int p_amount);

Expand All @@ -74,7 +74,7 @@ class RendererCompositorRD : public RendererCompositor {

_ALWAYS_INLINE_ uint64_t get_frame_number() const { return frame; }
_ALWAYS_INLINE_ float get_frame_delta_time() const { return delta; }
_ALWAYS_INLINE_ double get_total_time() const { return time; }
_ALWAYS_INLINE_ float get_total_time() const { return time; }

static Error is_viable() {
return OK;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2804,7 +2804,7 @@ RID RendererSceneRenderForward::_render_buffers_get_normal_texture(RID p_render_

RendererSceneRenderForward *RendererSceneRenderForward::singleton = nullptr;

void RendererSceneRenderForward::set_time(double p_time, double p_step) {
void RendererSceneRenderForward::set_time(float p_time, float p_step) {
time = p_time;
RendererSceneRenderRD::set_time(p_time, p_step);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ class RendererSceneRenderForward : public RendererSceneRenderRD {

static RendererSceneRenderForward *singleton;

double time;
float time;
RID default_shader;
RID default_material;
RID overdraw_material_shader;
Expand Down Expand Up @@ -761,7 +761,7 @@ class RendererSceneRenderForward : public RendererSceneRenderRD {
virtual void geometry_instance_pair_decal_instances(GeometryInstance *p_geometry_instance, const RID *p_decal_instances, uint32_t p_decal_instance_count);
virtual void geometry_instance_pair_gi_probe_instances(GeometryInstance *p_geometry_instance, const RID *p_gi_probe_instances, uint32_t p_gi_probe_instance_count);

virtual void set_time(double p_time, double p_step);
virtual void set_time(float p_time, float p_step);

virtual bool free(RID p_rid);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8281,7 +8281,7 @@ void RendererSceneRenderRD::update() {
_update_dirty_skys();
}

void RendererSceneRenderRD::set_time(double p_time, double p_step) {
void RendererSceneRenderRD::set_time(float p_time, float p_step) {
time = p_time;
time_step = p_step;
}
Expand Down
4 changes: 2 additions & 2 deletions servers/rendering/renderer_rd/renderer_scene_render_rd.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@

class RendererSceneRenderRD : public RendererSceneRender {
protected:
double time;
float time;

// Skys need less info from Directional Lights than the normal shaders
struct SkyDirectionalLightData {
Expand Down Expand Up @@ -2108,7 +2108,7 @@ class RendererSceneRenderRD : public RendererSceneRender {
return debug_draw;
}

virtual void set_time(double p_time, double p_step);
virtual void set_time(float p_time, float p_step);

RID get_reflection_probe_buffer();
RID get_omni_light_buffer();
Expand Down
2 changes: 1 addition & 1 deletion servers/rendering/renderer_scene_render.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ class RendererSceneRender {
virtual void render_particle_collider_heightfield(RID p_collider, const Transform &p_transform, const PagedArray<GeometryInstance *> &p_instances) = 0;

virtual void set_scene_pass(uint64_t p_pass) = 0;
virtual void set_time(double p_time, double p_step) = 0;
virtual void set_time(float p_time, float p_step) = 0;
virtual void set_debug_draw_mode(RS::ViewportDebugDraw p_debug_draw) = 0;

virtual RID render_buffers_create() = 0;
Expand Down
6 changes: 3 additions & 3 deletions servers/rendering/rendering_server_default.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ void RenderingServerDefault::request_frame_drawn_callback(Object *p_where, const
frame_drawn_callbacks.push_back(fdc);
}

void RenderingServerDefault::_draw(bool p_swap_buffers, double frame_step) {
void RenderingServerDefault::_draw(bool p_swap_buffers, float frame_step) {
//needs to be done before changes is reset to 0, to not force the editor to redraw
RS::get_singleton()->emit_signal("frame_pre_draw");

Expand Down Expand Up @@ -332,7 +332,7 @@ void RenderingServerDefault::_thread_exit() {
exit = true;
}

void RenderingServerDefault::_thread_draw(bool p_swap_buffers, double frame_step) {
void RenderingServerDefault::_thread_draw(bool p_swap_buffers, float frame_step) {
if (!atomic_decrement(&draw_pending)) {
_draw(p_swap_buffers, frame_step);
}
Expand Down Expand Up @@ -378,7 +378,7 @@ void RenderingServerDefault::sync() {
}
}

void RenderingServerDefault::draw(bool p_swap_buffers, double frame_step) {
void RenderingServerDefault::draw(bool p_swap_buffers, float frame_step) {
if (create_thread) {
atomic_increment(&draw_pending);
command_queue.push(this, &RenderingServerDefault::_thread_draw, p_swap_buffers, frame_step);
Expand Down
6 changes: 3 additions & 3 deletions servers/rendering/rendering_server_default.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,14 @@ class RenderingServerDefault : public RenderingServer {
bool create_thread;

uint64_t draw_pending;
void _thread_draw(bool p_swap_buffers, double frame_step);
void _thread_draw(bool p_swap_buffers, float frame_step);
void _thread_flush();

void _thread_exit();

Mutex alloc_mutex;

void _draw(bool p_swap_buffers, double frame_step);
void _draw(bool p_swap_buffers, float frame_step);
void _init();
void _finish();

Expand Down Expand Up @@ -893,7 +893,7 @@ class RenderingServerDefault : public RenderingServer {

virtual void request_frame_drawn_callback(Object *p_where, const StringName &p_method, const Variant &p_userdata) override;

virtual void draw(bool p_swap_buffers, double frame_step) override;
virtual void draw(bool p_swap_buffers, float frame_step) override;
virtual void sync() override;
virtual bool has_changed() const override;
virtual void init() override;
Expand Down
2 changes: 1 addition & 1 deletion servers/rendering_server.h
Original file line number Diff line number Diff line change
Expand Up @@ -1398,7 +1398,7 @@ class RenderingServer : public Object {

/* EVENT QUEUING */

virtual void draw(bool p_swap_buffers = true, double frame_step = 0.0) = 0;
virtual void draw(bool p_swap_buffers = true, float frame_step = 0.0f) = 0;
virtual void sync() = 0;
virtual bool has_changed() const = 0;
virtual void init() = 0;
Expand Down