mirror of
https://github.com/godotengine/godot.git
synced 2024-11-24 21:22:48 +00:00
Merge pull request #67000 from RandomShaper/split_render_further
Polish rendering driver refactor further
This commit is contained in:
commit
3306ffefd1
@ -182,8 +182,8 @@ opts.Add(BoolVariable("deprecated", "Enable compatibility code for deprecated an
|
||||
opts.Add(EnumVariable("float", "Floating-point precision", "32", ("32", "64")))
|
||||
opts.Add(BoolVariable("minizip", "Enable ZIP archive support using minizip", True))
|
||||
opts.Add(BoolVariable("xaudio2", "Enable the XAudio2 audio driver", False))
|
||||
opts.Add(BoolVariable("vulkan", "Enable the vulkan video driver", True))
|
||||
opts.Add(BoolVariable("opengl3", "Enable the OpenGL/GLES3 video driver", True))
|
||||
opts.Add(BoolVariable("vulkan", "Enable the vulkan rendering driver", True))
|
||||
opts.Add(BoolVariable("opengl3", "Enable the OpenGL/GLES3 rendering driver", True))
|
||||
opts.Add(BoolVariable("openxr", "Enable the OpenXR driver", True))
|
||||
opts.Add(BoolVariable("use_volk", "Use the volk library to load the Vulkan loader dynamically", True))
|
||||
opts.Add("custom_modules", "A list of comma-separated directory paths containing custom modules to build.", "")
|
||||
|
@ -2100,8 +2100,6 @@
|
||||
<member name="rendering/renderer/rendering_method.web" type="String" setter="" getter="" default=""gl_compatibility"">
|
||||
Override for [member rendering/renderer/rendering_method] on web.
|
||||
</member>
|
||||
<member name="rendering/rendering_device/descriptor_pools/max_descriptors_per_pool" type="int" setter="" getter="" default="64">
|
||||
</member>
|
||||
<member name="rendering/rendering_device/driver" type="String" setter="" getter="" default=""vulkan"">
|
||||
Sets the driver to be used by the renderer when using a RenderingDevice-based renderer like the clustered renderer or the mobile renderer. This property can not be edited directly, instead, set the driver using the platform-specific overrides.
|
||||
</member>
|
||||
@ -2126,6 +2124,8 @@
|
||||
</member>
|
||||
<member name="rendering/rendering_device/staging_buffer/texture_upload_region_size_px" type="int" setter="" getter="" default="64">
|
||||
</member>
|
||||
<member name="rendering/rendering_device/vulkan/max_descriptors_per_pool" type="int" setter="" getter="" default="64">
|
||||
</member>
|
||||
<member name="rendering/scaling_3d/fsr_sharpness" type="float" setter="" getter="" default="0.2">
|
||||
Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference.
|
||||
</member>
|
||||
|
@ -24,6 +24,7 @@ SConscript("winmidi/SCsub")
|
||||
|
||||
# Graphics drivers
|
||||
if env["vulkan"]:
|
||||
SConscript("spirv-reflect/SCsub")
|
||||
SConscript("vulkan/SCsub")
|
||||
if env["opengl3"]:
|
||||
SConscript("gl_context/SCsub")
|
||||
@ -31,7 +32,6 @@ if env["opengl3"]:
|
||||
|
||||
# Core dependencies
|
||||
SConscript("png/SCsub")
|
||||
SConscript("spirv-reflect/SCsub")
|
||||
|
||||
env.add_source_files(env.drivers_sources, "*.cpp")
|
||||
|
||||
|
@ -5170,9 +5170,9 @@ Vector<uint8_t> RenderingDeviceVulkan::shader_compile_binary_from_spirv(const Ve
|
||||
uint32_t offset = 0;
|
||||
uint8_t *binptr = ret.ptrw();
|
||||
binptr[0] = 'G';
|
||||
binptr[1] = 'V';
|
||||
binptr[1] = 'S';
|
||||
binptr[2] = 'B';
|
||||
binptr[3] = 'D'; // Godot vulkan binary data.
|
||||
binptr[3] = 'D'; // Godot Shader Binary Data.
|
||||
offset += 4;
|
||||
encode_uint32(SHADER_BINARY_VERSION, binptr + offset);
|
||||
offset += sizeof(uint32_t);
|
||||
@ -5233,7 +5233,7 @@ RID RenderingDeviceVulkan::shader_create_from_bytecode(const Vector<uint8_t> &p_
|
||||
uint32_t read_offset = 0;
|
||||
// Consistency check.
|
||||
ERR_FAIL_COND_V(binsize < sizeof(uint32_t) * 3 + sizeof(RenderingDeviceVulkanShaderBinaryData), RID());
|
||||
ERR_FAIL_COND_V(binptr[0] != 'G' || binptr[1] != 'V' || binptr[2] != 'B' || binptr[3] != 'D', RID());
|
||||
ERR_FAIL_COND_V(binptr[0] != 'G' || binptr[1] != 'S' || binptr[2] != 'B' || binptr[3] != 'D', RID());
|
||||
|
||||
uint32_t bin_version = decode_uint32(binptr + 4);
|
||||
ERR_FAIL_COND_V(bin_version != SHADER_BINARY_VERSION, RID());
|
||||
@ -9391,7 +9391,7 @@ void RenderingDeviceVulkan::initialize(VulkanContext *p_context, bool p_local_de
|
||||
ERR_CONTINUE(err != OK);
|
||||
}
|
||||
|
||||
max_descriptors_per_pool = GLOBAL_DEF("rendering/rendering_device/descriptor_pools/max_descriptors_per_pool", 64);
|
||||
max_descriptors_per_pool = GLOBAL_DEF("rendering/rendering_device/vulkan/max_descriptors_per_pool", 64);
|
||||
|
||||
// Check to make sure DescriptorPoolKey is good.
|
||||
static_assert(sizeof(uint64_t) * 3 >= UNIFORM_TYPE_MAX * sizeof(uint16_t));
|
||||
|
@ -180,6 +180,7 @@ void ShaderRD::_build_variant_code(StringBuilder &builder, uint32_t p_variant, c
|
||||
#if defined(MACOS_ENABLED) || defined(IOS_ENABLED)
|
||||
builder.append("#define MOLTENVK_USED\n");
|
||||
#endif
|
||||
builder.append(String("#define RENDER_DRIVER_") + OS::get_singleton()->get_current_rendering_driver_name().to_upper() + "\n");
|
||||
} break;
|
||||
case StageTemplate::Chunk::TYPE_MATERIAL_UNIFORMS: {
|
||||
builder.append(p_version->uniforms.get_data()); //uniforms (same for vertex and fragment)
|
||||
|
@ -2868,12 +2868,13 @@ void RenderingServer::init() {
|
||||
|
||||
GLOBAL_DEF("rendering/2d/shadow_atlas/size", 2048);
|
||||
|
||||
// Already defined in RenderingDeviceVulkan::initialize which runs before this code.
|
||||
// Already defined in some RenderingDevice*::initialize, which run before this code.
|
||||
// We re-define them here just for doctool's sake. Make sure to keep default values in sync.
|
||||
GLOBAL_DEF("rendering/rendering_device/staging_buffer/block_size_kb", 256);
|
||||
GLOBAL_DEF("rendering/rendering_device/staging_buffer/max_size_mb", 128);
|
||||
GLOBAL_DEF("rendering/rendering_device/staging_buffer/texture_upload_region_size_px", 64);
|
||||
GLOBAL_DEF("rendering/rendering_device/descriptor_pools/max_descriptors_per_pool", 64);
|
||||
// Vulkan-specific.
|
||||
GLOBAL_DEF("rendering/rendering_device/vulkan/max_descriptors_per_pool", 64);
|
||||
|
||||
// Number of commands that can be drawn per frame.
|
||||
GLOBAL_DEF_RST("rendering/gl_compatibility/item_buffer_size", 16384);
|
||||
|
Loading…
Reference in New Issue
Block a user