diff options
author | Omar Emara <mail@OmarEmara.dev> | 2022-05-30 16:08:23 +0300 |
---|---|---|
committer | Omar Emara <mail@OmarEmara.dev> | 2022-05-30 16:08:23 +0300 |
commit | c469934ba9968dad2747ff816e356e176f84ca3c (patch) | |
tree | e36a6a036395d8eb961b75affe76c3b383af31f1 /source/blender/gpu | |
parent | da2fb695b35a98f96400b6a783a614de724ab3a0 (diff) | |
parent | a8471459fd18f356f730c684665c8dadadad723d (diff) |
Merge branch 'master' into temp-viewport-compositor-merge
Diffstat (limited to 'source/blender/gpu')
9 files changed, 15 insertions, 68 deletions
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index d571b4ce404..f781519b5ff 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -446,8 +446,6 @@ set(GLSL_SRC shaders/gpu_shader_cfg_world_clip_lib.glsl shaders/gpu_shader_colorspace_lib.glsl - shaders/gpu_shader_common_obinfos_lib.glsl - GPU_shader_shared_utils.h ) diff --git a/source/blender/gpu/GPU_capabilities.h b/source/blender/gpu/GPU_capabilities.h index 061b850619f..7fe467de402 100644 --- a/source/blender/gpu/GPU_capabilities.h +++ b/source/blender/gpu/GPU_capabilities.h @@ -35,7 +35,7 @@ int GPU_max_compute_shader_storage_blocks(void); int GPU_extensions_len(void); const char *GPU_extension_get(int i); -int GPU_texture_size_with_limit(int res, bool limit_gl_texture_size); +int GPU_texture_size_with_limit(int res); bool GPU_mip_render_workaround(void); bool GPU_depth_blitting_workaround(void); diff --git a/source/blender/gpu/intern/gpu_capabilities.cc b/source/blender/gpu/intern/gpu_capabilities.cc index 4ec215c2d3b..eb69a1d2635 100644 --- a/source/blender/gpu/intern/gpu_capabilities.cc +++ b/source/blender/gpu/intern/gpu_capabilities.cc @@ -33,11 +33,10 @@ int GPU_max_texture_size() return GCaps.max_texture_size; } -int GPU_texture_size_with_limit(int res, bool limit_gl_texture_size) +int GPU_texture_size_with_limit(int res) { int size = GPU_max_texture_size(); - int reslimit = (limit_gl_texture_size && (U.glreslimit != 0)) ? min_ii(U.glreslimit, size) : - size; + int reslimit = (U.glreslimit != 0) ? min_ii(U.glreslimit, size) : size; return min_ii(reslimit, res); } diff --git a/source/blender/gpu/intern/gpu_material_library.h b/source/blender/gpu/intern/gpu_material_library.h index 08cb770698e..5aa311ed101 100644 --- a/source/blender/gpu/intern/gpu_material_library.h +++ b/source/blender/gpu/intern/gpu_material_library.h @@ -34,7 +34,7 @@ typedef struct GPUFunction { eGPUType paramtype[MAX_PARAMETER]; GPUFunctionQual paramqual[MAX_PARAMETER]; int totparam; - /* TOOD(@fclem): Clean that void pointer. */ + /* TODO(@fclem): Clean that void pointer. */ void *source; /* GPUSource */ } GPUFunction; diff --git a/source/blender/gpu/opengl/gl_backend.cc b/source/blender/gpu/opengl/gl_backend.cc index 1cd2301aa4e..0c796ddc765 100644 --- a/source/blender/gpu/opengl/gl_backend.cc +++ b/source/blender/gpu/opengl/gl_backend.cc @@ -291,26 +291,12 @@ static void detect_workarounds() } /* See T82856: AMD drivers since 20.11 running on a polaris architecture doesn't support the * `GL_INT_2_10_10_10_REV` data type correctly. This data type is used to pack normals and flags. - * The work around uses `GPU_RGBA16I`. + * The work around uses `GPU_RGBA16I`. In 22.?.? drivers this has been fixed for + * polaris platform. Keeping legacy platforms around just in case. */ if (GPU_type_matches(GPU_DEVICE_ATI, GPU_OS_ANY, GPU_DRIVER_OFFICIAL)) { - const Vector<std::string> matches = {"RX 460", - "RX 470", - "RX 480", - "RX 490", - "RX 560", - "RX 560X", - "RX 570", - "RX 580", - "RX 580X", - "RX 590", - "RX550/550", - "(TM) 520", - "(TM) 530", - "(TM) 535", - "R5", - "R7", - "R9"}; + const Vector<std::string> matches = { + "RX550/550", "(TM) 520", "(TM) 530", "(TM) 535", "R5", "R7", "R9"}; if (match_renderer(renderer, matches)) { GCaps.use_hq_normals_workaround = true; diff --git a/source/blender/gpu/shaders/gpu_shader_common_obinfos_lib.glsl b/source/blender/gpu/shaders/gpu_shader_common_obinfos_lib.glsl deleted file mode 100644 index f5b6de4899f..00000000000 --- a/source/blender/gpu/shaders/gpu_shader_common_obinfos_lib.glsl +++ /dev/null @@ -1,23 +0,0 @@ - -#pragma BLENDER_REQUIRE(common_view_lib.glsl) - -#ifndef GPU_OBINFOS_UBO -# define GPU_OBINFOS_UBO -struct ObjectInfos { - vec4 drw_OrcoTexCoFactors[2]; - vec4 drw_ObjectColor; - vec4 drw_Infos; -}; - -# ifndef USE_GPU_SHADER_CREATE_INFO -layout(std140) uniform infoBlock -{ - /* DRW_RESOURCE_CHUNK_LEN = 512 */ - ObjectInfos drw_infos[512]; -}; -# endif - -# define OrcoTexCoFactors (drw_infos[resource_id].drw_OrcoTexCoFactors) -# define ObjectInfo (drw_infos[resource_id].drw_Infos) -# define ObjectColor (drw_infos[resource_id].drw_ObjectColor) -#endif diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_blackbody.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_blackbody.glsl index d0111aa3839..e257483f364 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_blackbody.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_blackbody.glsl @@ -1,13 +1,5 @@ void node_blackbody(float temperature, sampler1DArray spectrummap, float layer, out vec4 color) { - if (temperature >= 12000.0) { - color = vec4(0.826270103, 0.994478524, 1.56626022, 1.0); - } - else if (temperature < 965.0) { - color = vec4(4.70366907, 0.0, 0.0, 1.0); - } - else { - float t = (temperature - 965.0) / (12000.0 - 965.0); - color = vec4(texture(spectrummap, vec2(t, layer)).rgb, 1.0); - } + float t = (temperature - 800.0) / (12000.0 - 800.0); + color = vec4(texture(spectrummap, vec2(t, layer)).rgb, 1.0); } diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_normal_map.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_normal_map.glsl index e219e2b9bbe..a54dc59ddfe 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_normal_map.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_normal_map.glsl @@ -1,3 +1,5 @@ + +#ifdef OBINFO_LIB void node_normal_map(vec4 tangent, vec3 texnormal, out vec3 outnormal) { if (all(equal(tangent, vec4(0.0, 0.0, 0.0, 1.0)))) { @@ -10,6 +12,7 @@ void node_normal_map(vec4 tangent, vec3 texnormal, out vec3 outnormal) outnormal = texnormal.x * tangent.xyz + texnormal.y * B + texnormal.z * g_data.N; outnormal = normalize(outnormal); } +#endif void color_to_normal_new_shading(vec3 color, out vec3 normal) { diff --git a/source/blender/gpu/shaders/material/gpu_shader_material_wavelength.glsl b/source/blender/gpu/shaders/material/gpu_shader_material_wavelength.glsl index 2c5d38eabbe..48d627dcd0b 100644 --- a/source/blender/gpu/shaders/material/gpu_shader_material_wavelength.glsl +++ b/source/blender/gpu/shaders/material/gpu_shader_material_wavelength.glsl @@ -1,15 +1,7 @@ -void node_wavelength(float wavelength, - sampler1DArray spectrummap, - float layer, - vec3 xyz_to_r, - vec3 xyz_to_g, - vec3 xyz_to_b, - out vec4 color) +void node_wavelength(float wavelength, sampler1DArray spectrummap, float layer, out vec4 color) { - mat3 xyz_to_rgb = mat3(xyz_to_r, xyz_to_g, xyz_to_b); float t = (wavelength - 380.0) / (780.0 - 380.0); - vec3 xyz = texture(spectrummap, vec2(t, layer)).rgb; - vec3 rgb = xyz * xyz_to_rgb; + vec3 rgb = texture(spectrummap, vec2(t, layer)).rgb; rgb *= 1.0 / 2.52; /* Empirical scale from lg to make all comps <= 1. */ color = vec4(clamp(rgb, 0.0, 1.0), 1.0); } |