Merge pull request #49063 from Calinou/remove-16x-msaa
Remove 16× MSAA support due to driver bugs and low performance
This commit is contained in:
commit
8ecc571158
9 changed files with 10 additions and 21 deletions
|
@ -3801,21 +3801,18 @@
|
||||||
<constant name="VIEWPORT_SDF_SCALE_MAX" value="3" enum="ViewportSDFScale">
|
<constant name="VIEWPORT_SDF_SCALE_MAX" value="3" enum="ViewportSDFScale">
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="VIEWPORT_MSAA_DISABLED" value="0" enum="ViewportMSAA">
|
<constant name="VIEWPORT_MSAA_DISABLED" value="0" enum="ViewportMSAA">
|
||||||
Multisample antialiasing is disabled.
|
Multisample antialiasing for 3D is disabled. This is the default value, and also the fastest setting.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="VIEWPORT_MSAA_2X" value="1" enum="ViewportMSAA">
|
<constant name="VIEWPORT_MSAA_2X" value="1" enum="ViewportMSAA">
|
||||||
Multisample antialiasing uses 2 samples per pixel.
|
Multisample antialiasing uses 2 samples per pixel for 3D. This has a moderate impact on performance.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="VIEWPORT_MSAA_4X" value="2" enum="ViewportMSAA">
|
<constant name="VIEWPORT_MSAA_4X" value="2" enum="ViewportMSAA">
|
||||||
Multisample antialiasing uses 4 samples per pixel.
|
Multisample antialiasing uses 4 samples per pixel for 3D. This has a high impact on performance.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="VIEWPORT_MSAA_8X" value="3" enum="ViewportMSAA">
|
<constant name="VIEWPORT_MSAA_8X" value="3" enum="ViewportMSAA">
|
||||||
Multisample antialiasing uses 8 samples per pixel.
|
Multisample antialiasing uses 8 samples per pixel for 3D. This has a very high impact on performance. Likely unsupported on low-end and older hardware.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="VIEWPORT_MSAA_16X" value="4" enum="ViewportMSAA">
|
<constant name="VIEWPORT_MSAA_MAX" value="4" enum="ViewportMSAA">
|
||||||
Multisample antialiasing uses 16 samples per pixel.
|
|
||||||
</constant>
|
|
||||||
<constant name="VIEWPORT_MSAA_MAX" value="5" enum="ViewportMSAA">
|
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="VIEWPORT_SCREEN_SPACE_AA_DISABLED" value="0" enum="ViewportScreenSpaceAA">
|
<constant name="VIEWPORT_SCREEN_SPACE_AA_DISABLED" value="0" enum="ViewportScreenSpaceAA">
|
||||||
</constant>
|
</constant>
|
||||||
|
|
|
@ -321,10 +321,7 @@
|
||||||
<constant name="MSAA_8X" value="3" enum="MSAA">
|
<constant name="MSAA_8X" value="3" enum="MSAA">
|
||||||
Use 8× Multisample Antialiasing. This has a very high performance cost. The difference between 4× and 8× MSAA may not always be visible in real gameplay conditions. Likely unsupported on low-end and older hardware.
|
Use 8× Multisample Antialiasing. This has a very high performance cost. The difference between 4× and 8× MSAA may not always be visible in real gameplay conditions. Likely unsupported on low-end and older hardware.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="MSAA_16X" value="4" enum="MSAA">
|
<constant name="MSAA_MAX" value="4" enum="MSAA">
|
||||||
Use 16× Multisample Antialiasing. This has a very high performance cost. The difference between 8× and 16× MSAA may not always be visible in real gameplay conditions. Likely unsupported on medium and low-end hardware.
|
|
||||||
</constant>
|
|
||||||
<constant name="MSAA_MAX" value="5" enum="MSAA">
|
|
||||||
Represents the size of the [enum MSAA] enum.
|
Represents the size of the [enum MSAA] enum.
|
||||||
</constant>
|
</constant>
|
||||||
<constant name="SCREEN_SPACE_AA_DISABLED" value="0" enum="ScreenSpaceAA">
|
<constant name="SCREEN_SPACE_AA_DISABLED" value="0" enum="ScreenSpaceAA">
|
||||||
|
|
|
@ -1337,7 +1337,7 @@ SceneTree::SceneTree() {
|
||||||
current_scene = nullptr;
|
current_scene = nullptr;
|
||||||
|
|
||||||
const int msaa_mode = GLOBAL_DEF("rendering/anti_aliasing/quality/msaa", 0);
|
const int msaa_mode = GLOBAL_DEF("rendering/anti_aliasing/quality/msaa", 0);
|
||||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/quality/msaa", PropertyInfo(Variant::INT, "rendering/anti_aliasing/quality/msaa", PROPERTY_HINT_ENUM, String::utf8("Disabled (Fastest),2× (Fast),4× (Average),8× (Slow),16× (Slower)")));
|
ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/quality/msaa", PropertyInfo(Variant::INT, "rendering/anti_aliasing/quality/msaa", PROPERTY_HINT_ENUM, String::utf8("Disabled (Fastest),2× (Average),4× (Slow),8× (Slowest)")));
|
||||||
root->set_msaa(Viewport::MSAA(msaa_mode));
|
root->set_msaa(Viewport::MSAA(msaa_mode));
|
||||||
|
|
||||||
const int ssaa_mode = GLOBAL_DEF("rendering/anti_aliasing/quality/screen_space_aa", 0);
|
const int ssaa_mode = GLOBAL_DEF("rendering/anti_aliasing/quality/screen_space_aa", 0);
|
||||||
|
|
|
@ -3594,7 +3594,7 @@ void Viewport::_bind_methods() {
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_2d_transforms_to_pixel"), "set_snap_2d_transforms_to_pixel", "is_snap_2d_transforms_to_pixel_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_2d_transforms_to_pixel"), "set_snap_2d_transforms_to_pixel", "is_snap_2d_transforms_to_pixel_enabled");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_2d_vertices_to_pixel"), "set_snap_2d_vertices_to_pixel", "is_snap_2d_vertices_to_pixel_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "snap_2d_vertices_to_pixel"), "set_snap_2d_vertices_to_pixel", "is_snap_2d_vertices_to_pixel_enabled");
|
||||||
ADD_GROUP("Rendering", "");
|
ADD_GROUP("Rendering", "");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "msaa", PROPERTY_HINT_ENUM, String::utf8("Disabled (Fastest),2× (Fast),4× (Average),8× (Slow),16× (Slower)")), "set_msaa", "get_msaa");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "msaa", PROPERTY_HINT_ENUM, String::utf8("Disabled (Fastest),2× (Average),4× (Slow),8× (Slowest)")), "set_msaa", "get_msaa");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "screen_space_aa", PROPERTY_HINT_ENUM, "Disabled (Fastest),FXAA (Fast)"), "set_screen_space_aa", "get_screen_space_aa");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "screen_space_aa", PROPERTY_HINT_ENUM, "Disabled (Fastest),FXAA (Fast)"), "set_screen_space_aa", "get_screen_space_aa");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_debanding"), "set_use_debanding", "is_using_debanding");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_debanding"), "set_use_debanding", "is_using_debanding");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_occlusion_culling"), "set_use_occlusion_culling", "is_using_occlusion_culling");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_occlusion_culling"), "set_use_occlusion_culling", "is_using_occlusion_culling");
|
||||||
|
@ -3646,7 +3646,6 @@ void Viewport::_bind_methods() {
|
||||||
BIND_ENUM_CONSTANT(MSAA_2X);
|
BIND_ENUM_CONSTANT(MSAA_2X);
|
||||||
BIND_ENUM_CONSTANT(MSAA_4X);
|
BIND_ENUM_CONSTANT(MSAA_4X);
|
||||||
BIND_ENUM_CONSTANT(MSAA_8X);
|
BIND_ENUM_CONSTANT(MSAA_8X);
|
||||||
BIND_ENUM_CONSTANT(MSAA_16X);
|
|
||||||
BIND_ENUM_CONSTANT(MSAA_MAX);
|
BIND_ENUM_CONSTANT(MSAA_MAX);
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(SCREEN_SPACE_AA_DISABLED);
|
BIND_ENUM_CONSTANT(SCREEN_SPACE_AA_DISABLED);
|
||||||
|
|
|
@ -113,7 +113,7 @@ public:
|
||||||
MSAA_2X,
|
MSAA_2X,
|
||||||
MSAA_4X,
|
MSAA_4X,
|
||||||
MSAA_8X,
|
MSAA_8X,
|
||||||
MSAA_16X,
|
// 16x MSAA is not supported due to its high cost and driver bugs.
|
||||||
MSAA_MAX
|
MSAA_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -223,7 +223,6 @@ void RenderForwardClustered::RenderBufferDataForwardClustered::configure(RID p_c
|
||||||
RD::TEXTURE_SAMPLES_2,
|
RD::TEXTURE_SAMPLES_2,
|
||||||
RD::TEXTURE_SAMPLES_4,
|
RD::TEXTURE_SAMPLES_4,
|
||||||
RD::TEXTURE_SAMPLES_8,
|
RD::TEXTURE_SAMPLES_8,
|
||||||
RD::TEXTURE_SAMPLES_16
|
|
||||||
};
|
};
|
||||||
|
|
||||||
texture_samples = ts[p_msaa];
|
texture_samples = ts[p_msaa];
|
||||||
|
@ -1163,7 +1162,7 @@ void RenderForwardClustered::_render_scene(RenderDataRD *p_render_data, const Co
|
||||||
render_buffer = (RenderBufferDataForwardClustered *)render_buffers_get_data(p_render_data->render_buffers);
|
render_buffer = (RenderBufferDataForwardClustered *)render_buffers_get_data(p_render_data->render_buffers);
|
||||||
}
|
}
|
||||||
RendererSceneEnvironmentRD *env = get_environment(p_render_data->environment);
|
RendererSceneEnvironmentRD *env = get_environment(p_render_data->environment);
|
||||||
static const int texture_multisamples[RS::VIEWPORT_MSAA_MAX] = { 1, 2, 4, 8, 16 };
|
static const int texture_multisamples[RS::VIEWPORT_MSAA_MAX] = { 1, 2, 4, 8 };
|
||||||
|
|
||||||
//first of all, make a new render pass
|
//first of all, make a new render pass
|
||||||
//fill up ubo
|
//fill up ubo
|
||||||
|
|
|
@ -159,7 +159,6 @@ void RenderForwardMobile::RenderBufferDataForwardMobile::configure(RID p_color_b
|
||||||
RD::TEXTURE_SAMPLES_2,
|
RD::TEXTURE_SAMPLES_2,
|
||||||
RD::TEXTURE_SAMPLES_4,
|
RD::TEXTURE_SAMPLES_4,
|
||||||
RD::TEXTURE_SAMPLES_8,
|
RD::TEXTURE_SAMPLES_8,
|
||||||
RD::TEXTURE_SAMPLES_16
|
|
||||||
};
|
};
|
||||||
|
|
||||||
texture_samples = ts[p_msaa];
|
texture_samples = ts[p_msaa];
|
||||||
|
|
|
@ -2225,7 +2225,6 @@ void RenderingServer::_bind_methods() {
|
||||||
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_2X);
|
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_2X);
|
||||||
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_4X);
|
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_4X);
|
||||||
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_8X);
|
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_8X);
|
||||||
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_16X);
|
|
||||||
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_MAX);
|
BIND_ENUM_CONSTANT(VIEWPORT_MSAA_MAX);
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(VIEWPORT_SCREEN_SPACE_AA_DISABLED);
|
BIND_ENUM_CONSTANT(VIEWPORT_SCREEN_SPACE_AA_DISABLED);
|
||||||
|
|
|
@ -836,7 +836,6 @@ public:
|
||||||
VIEWPORT_MSAA_2X,
|
VIEWPORT_MSAA_2X,
|
||||||
VIEWPORT_MSAA_4X,
|
VIEWPORT_MSAA_4X,
|
||||||
VIEWPORT_MSAA_8X,
|
VIEWPORT_MSAA_8X,
|
||||||
VIEWPORT_MSAA_16X,
|
|
||||||
VIEWPORT_MSAA_MAX,
|
VIEWPORT_MSAA_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue