Skip to content

Commit

Permalink
Merge pull request #77105 from aaronfranke/s3tc_bptc_and_etc2_astc
Browse files Browse the repository at this point in the history
Enable S3TC_BPTC but not ETC2_ASTC by default
  • Loading branch information
akien-mga authored Jun 9, 2023
2 parents 504acb9 + 944fbce commit 9723077
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 4 deletions.
4 changes: 2 additions & 2 deletions doc/classes/ProjectSettings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2606,11 +2606,11 @@
<member name="rendering/textures/lossless_compression/force_png" type="bool" setter="" getter="" default="false">
If [code]true[/code], the texture importer will import lossless textures using the PNG format. Otherwise, it will default to using WebP.
</member>
<member name="rendering/textures/vram_compression/import_etc2_astc" type="bool" setter="" getter="">
<member name="rendering/textures/vram_compression/import_etc2_astc" type="bool" setter="" getter="" default="false">
If [code]true[/code], the texture importer will import VRAM-compressed textures using the Ericsson Texture Compression 2 algorithm for lower quality textures and normal maps and Adaptable Scalable Texture Compression algorithm for high quality textures (in 4x4 block size).
[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor (see [member application/config/use_hidden_project_data_directory]).
</member>
<member name="rendering/textures/vram_compression/import_s3tc_bptc" type="bool" setter="" getter="">
<member name="rendering/textures/vram_compression/import_s3tc_bptc" type="bool" setter="" getter="" default="true">
If [code]true[/code], the texture importer will import VRAM-compressed textures using the S3 Texture Compression algorithm (DXT1-5) for lower quality textures and the BPTC algorithm (BC6H and BC7) for high quality textures. This algorithm is only supported on PC desktop platforms and consoles.
[b]Note:[/b] Changing this setting does [i]not[/i] impact textures that were already imported before. To make this setting apply to textures that were already imported, exit the editor, remove the [code].godot/imported/[/code] folder located inside the project folder then restart the editor (see [member application/config/use_hidden_project_data_directory]).
</member>
Expand Down
1 change: 1 addition & 0 deletions platform/macos/os_macos.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ class OS_MacOS : public OS_Unix {
virtual Error move_to_trash(const String &p_path) override;

virtual String get_system_ca_certificates() override;
virtual OS::PreferredTextureFormat get_preferred_texture_format() const override;

void run();

Expand Down
6 changes: 6 additions & 0 deletions platform/macos/os_macos.mm
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,12 @@
return certs;
}

OS::PreferredTextureFormat OS_MacOS::get_preferred_texture_format() const {
// macOS supports both formats on ARM. Prefer S3TC/BPTC
// for better compatibility with x86 platforms.
return PREFERRED_TEXTURE_FORMAT_S3TC_BPTC;
}

void OS_MacOS::run() {
if (!main_loop) {
return;
Expand Down
4 changes: 2 additions & 2 deletions servers/rendering_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2870,8 +2870,8 @@ TypedArray<StringName> RenderingServer::_global_shader_parameter_get_list() cons
}

void RenderingServer::init() {
GLOBAL_DEF_RST_NOVAL_BASIC("rendering/textures/vram_compression/import_s3tc_bptc", OS::get_singleton()->get_preferred_texture_format() == OS::PREFERRED_TEXTURE_FORMAT_S3TC_BPTC);
GLOBAL_DEF_RST_NOVAL_BASIC("rendering/textures/vram_compression/import_etc2_astc", OS::get_singleton()->get_preferred_texture_format() == OS::PREFERRED_TEXTURE_FORMAT_ETC2_ASTC);
GLOBAL_DEF_RST("rendering/textures/vram_compression/import_s3tc_bptc", true);
GLOBAL_DEF_RST("rendering/textures/vram_compression/import_etc2_astc", false);

GLOBAL_DEF("rendering/textures/lossless_compression/force_png", false);

Expand Down

0 comments on commit 9723077

Please sign in to comment.