<div dir="ltr"><div>Yeah, I'll try to add descriptive commit messages next time.</div><div><br></div><div>Marek<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 1, 2019 at 11:22 PM Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com">tarceri@itsqueeze.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I feel like I've asked this before but can you please try to add commit <br>
proper commit messages. Not adding a proper commit message might save <br>
you a minute or two but it cost much more than a minute or two for those <br>
trying to review a patch or that have bisect to the commit, used git <br>
blame, git log etc to find out why a change was made.<br>
<br>
I started reviewing the patch when you first sent it but it wasn't <br>
immediately obvious what the fix was vs tidy ups. I didn't want to go <br>
looking over specs either, all the relevant information should have been <br>
here in the commit message.<br>
<br>
Thanks,<br>
Tim<br>
<br>
<br>
On 2/5/19 11:17 am, Marek Olšák wrote:<br>
> Ping<br>
> <br>
> On Wed, Apr 24, 2019 at 1:30 PM Marek Olšák <<a href="mailto:maraeo@gmail.com" target="_blank">maraeo@gmail.com</a> <br>
> <mailto:<a href="mailto:maraeo@gmail.com" target="_blank">maraeo@gmail.com</a>>> wrote:<br>
> <br>
> From: Marek Olšák <<a href="mailto:marek.olsak@amd.com" target="_blank">marek.olsak@amd.com</a> <mailto:<a href="mailto:marek.olsak@amd.com" target="_blank">marek.olsak@amd.com</a>>><br>
> <br>
> ---<br>
> src/compiler/glsl/builtin_functions.cpp | 78 ++++++++-----------------<br>
> 1 file changed, 24 insertions(+), 54 deletions(-)<br>
> <br>
> diff --git a/src/compiler/glsl/builtin_functions.cpp<br>
> b/src/compiler/glsl/builtin_functions.cpp<br>
> index c8d9e1c9af3..b1ffafa1acf 100644<br>
> --- a/src/compiler/glsl/builtin_functions.cpp<br>
> +++ b/src/compiler/glsl/builtin_functions.cpp<br>
> @@ -125,23 +125,21 @@ gs_only(const _mesa_glsl_parse_state *state)<br>
> static bool<br>
> v110(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return !state->es_shader;<br>
> }<br>
> <br>
> static bool<br>
> v110_derivatives_only(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return !state->es_shader &&<br>
> - (state->stage == MESA_SHADER_FRAGMENT ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable));<br>
> + derivatives_only(state);<br>
> }<br>
> <br>
> static bool<br>
> v120(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(120, 300);<br>
> }<br>
> <br>
> static bool<br>
> v130(const _mesa_glsl_parse_state *state)<br>
> @@ -158,38 +156,34 @@ v130_desktop(const _mesa_glsl_parse_state *state)<br>
> static bool<br>
> v460_desktop(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(460, 0);<br>
> }<br>
> <br>
> static bool<br>
> v130_derivatives_only(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(130, 300) &&<br>
> - (state->stage == MESA_SHADER_FRAGMENT ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable));<br>
> + derivatives_only(state);<br>
> }<br>
> <br>
> static bool<br>
> v140_or_es3(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(140, 300);<br>
> }<br>
> <br>
> static bool<br>
> v400_derivatives_only(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(400, 0) &&<br>
> - (state->stage == MESA_SHADER_FRAGMENT ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable));<br>
> + derivatives_only(state);<br>
> }<br>
> <br>
> static bool<br>
> texture_rectangle(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->ARB_texture_rectangle_enable;<br>
> }<br>
> <br>
> static bool<br>
> texture_external(const _mesa_glsl_parse_state *state)<br>
> @@ -333,23 +327,21 @@ static bool<br>
> gpu_shader4_tbo_integer(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return gpu_shader4_tbo(state) &&<br>
> state->ctx->Extensions.EXT_texture_integer;<br>
> }<br>
> <br>
> static bool<br>
> gpu_shader4_derivs_only(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->EXT_gpu_shader4_enable &&<br>
> - (state->stage == MESA_SHADER_FRAGMENT ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable));<br>
> + derivatives_only(state);<br>
> }<br>
> <br>
> static bool<br>
> gpu_shader4_integer_derivs_only(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return gpu_shader4_derivs_only(state) &&<br>
> state->ctx->Extensions.EXT_texture_integer;<br>
> }<br>
> <br>
> static bool<br>
> @@ -435,37 +427,35 @@ fs_interpolate_at(const _mesa_glsl_parse_state<br>
> *state)<br>
> <br>
> static bool<br>
> texture_array_lod(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return lod_exists_in_stage(state) &&<br>
> (state->EXT_texture_array_enable ||<br>
> (state->EXT_gpu_shader4_enable &&<br>
> state->ctx->Extensions.EXT_texture_array));<br>
> }<br>
> <br>
> -static bool<br>
> -fs_texture_array(const _mesa_glsl_parse_state *state)<br>
> -{<br>
> - return state->stage == MESA_SHADER_FRAGMENT &&<br>
> - (state->EXT_texture_array_enable ||<br>
> - (state->EXT_gpu_shader4_enable &&<br>
> - state->ctx->Extensions.EXT_texture_array));<br>
> -}<br>
> -<br>
> static bool<br>
> texture_array(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->EXT_texture_array_enable ||<br>
> (state->EXT_gpu_shader4_enable &&<br>
> state->ctx->Extensions.EXT_texture_array);<br>
> }<br>
> <br>
> +static bool<br>
> +texture_array_derivs_only(const _mesa_glsl_parse_state *state)<br>
> +{<br>
> + return derivatives_only(state) &&<br>
> + texture_array(state);<br>
> +}<br>
> +<br>
> static bool<br>
> texture_multisample(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(150, 310) ||<br>
> state->ARB_texture_multisample_enable;<br>
> }<br>
> <br>
> static bool<br>
> texture_multisample_array(const _mesa_glsl_parse_state *state)<br>
> {<br>
> @@ -485,42 +475,40 @@ static bool<br>
> texture_samples_identical_array(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return texture_multisample_array(state) &&<br>
> state->EXT_shader_samples_identical_enable;<br>
> }<br>
> <br>
> static bool<br>
> derivatives_texture_cube_map_array(const _mesa_glsl_parse_state<br>
> *state)<br>
> {<br>
> return state->has_texture_cube_map_array() &&<br>
> - (state->stage == MESA_SHADER_FRAGMENT ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable));<br>
> + derivatives_only(state);<br>
> }<br>
> <br>
> static bool<br>
> texture_cube_map_array(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->has_texture_cube_map_array();<br>
> }<br>
> <br>
> static bool<br>
> texture_query_levels(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(430, 0) ||<br>
> state->ARB_texture_query_levels_enable;<br>
> }<br>
> <br>
> static bool<br>
> texture_query_lod(const _mesa_glsl_parse_state *state)<br>
> {<br>
> - return state->stage == MESA_SHADER_FRAGMENT &&<br>
> + return derivatives_only(state) &&<br>
> (state->ARB_texture_query_lod_enable ||<br>
> state->EXT_texture_query_lod_enable);<br>
> }<br>
> <br>
> static bool<br>
> texture_gather_cube_map_array(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return state->is_version(400, 320) ||<br>
> state->ARB_texture_gather_enable ||<br>
> state->ARB_gpu_shader5_enable ||<br>
> @@ -549,54 +537,38 @@ static bool<br>
> texture_gather_only_or_es31(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return !state->is_version(400, 320) &&<br>
> !state->ARB_gpu_shader5_enable &&<br>
> !state->EXT_gpu_shader5_enable &&<br>
> !state->OES_gpu_shader5_enable &&<br>
> (state->ARB_texture_gather_enable ||<br>
> state->is_version(0, 310));<br>
> }<br>
> <br>
> -/* Desktop GL or OES_standard_derivatives + fragment shader only */<br>
> +/* Desktop GL or OES_standard_derivatives */<br>
> static bool<br>
> -fs_oes_derivatives(const _mesa_glsl_parse_state *state)<br>
> +derivatives(const _mesa_glsl_parse_state *state)<br>
> {<br>
> - return state->stage == MESA_SHADER_FRAGMENT &&<br>
> + return derivatives_only(state) &&<br>
> (state->is_version(110, 300) ||<br>
> state->OES_standard_derivatives_enable ||<br>
> state->ctx->Const.AllowGLSLRelaxedES);<br>
> }<br>
> <br>
> static bool<br>
> -derivatives(const _mesa_glsl_parse_state *state)<br>
> -{<br>
> - return fs_oes_derivatives(state) ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable);<br>
> -}<br>
> -<br>
> -static bool<br>
> -fs_derivative_control(const _mesa_glsl_parse_state *state)<br>
> +derivative_control(const _mesa_glsl_parse_state *state)<br>
> {<br>
> - return state->stage == MESA_SHADER_FRAGMENT &&<br>
> + return derivatives_only(state) &&<br>
> (state->is_version(450, 0) ||<br>
> state->ARB_derivative_control_enable);<br>
> }<br>
> <br>
> -static bool<br>
> -derivative_control(const _mesa_glsl_parse_state *state)<br>
> -{<br>
> - return fs_derivative_control(state) ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable);<br>
> -}<br>
> -<br>
> static bool<br>
> tex1d_lod(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return !state->es_shader && lod_exists_in_stage(state);<br>
> }<br>
> <br>
> /** True if sampler3D exists */<br>
> static bool<br>
> tex3d(const _mesa_glsl_parse_state *state)<br>
> {<br>
> @@ -605,23 +577,21 @@ tex3d(const _mesa_glsl_parse_state *state)<br>
> */<br>
> return !state->es_shader ||<br>
> state->OES_texture_3D_enable ||<br>
> state->language_version >= 300;<br>
> }<br>
> <br>
> static bool<br>
> derivatives_tex3d(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return (!state->es_shader || state->OES_texture_3D_enable) &&<br>
> - (state->stage == MESA_SHADER_FRAGMENT ||<br>
> - (state->stage == MESA_SHADER_COMPUTE &&<br>
> - state->NV_compute_shader_derivatives_enable));<br>
> + derivatives_only(state);<br>
> }<br>
> <br>
> static bool<br>
> tex3d_lod(const _mesa_glsl_parse_state *state)<br>
> {<br>
> return tex3d(state) && lod_exists_in_stage(state);<br>
> }<br>
> <br>
> static bool<br>
> shader_atomic_counters(const _mesa_glsl_parse_state *state)<br>
> @@ -3254,21 +3224,21 @@ builtin_builder::create_builtins()<br>
> _texture(ir_tex, v110, <br>
> glsl_type::vec4_type, glsl_type::sampler1D_type,<br>
> glsl_type::float_type),<br>
> _texture(ir_txb, v110_derivatives_only, <br>
> glsl_type::vec4_type, glsl_type::sampler1D_type,<br>
> glsl_type::float_type),<br>
> _texture(ir_tex, gpu_shader4_integer, <br>
> glsl_type::ivec4_type, glsl_type::isampler1D_type,<br>
> glsl_type::float_type),<br>
> _texture(ir_txb, gpu_shader4_integer_derivs_only, <br>
> glsl_type::ivec4_type, glsl_type::isampler1D_type,<br>
> glsl_type::float_type),<br>
> _texture(ir_tex, gpu_shader4_integer, <br>
> glsl_type::uvec4_type, glsl_type::usampler1D_type,<br>
> glsl_type::float_type),<br>
> _texture(ir_txb, gpu_shader4_integer_derivs_only, <br>
> glsl_type::uvec4_type, glsl_type::usampler1D_type,<br>
> glsl_type::float_type),<br>
> NULL);<br>
> <br>
> add_function("texture1DArray",<br>
> _texture(ir_tex, texture_array, <br>
> glsl_type::vec4_type, glsl_type::sampler1DArray_type,<br>
> glsl_type::vec2_type),<br>
> - _texture(ir_txb, fs_texture_array, <br>
> glsl_type::vec4_type, glsl_type::sampler1DArray_type,<br>
> glsl_type::vec2_type),<br>
> + _texture(ir_txb,<br>
> texture_array_derivs_only,glsl_type::vec4_type,<br>
> glsl_type::sampler1DArray_type, glsl_type::vec2_type),<br>
> _texture(ir_tex, gpu_shader4_array_integer, <br>
> glsl_type::ivec4_type, glsl_type::isampler1DArray_type,<br>
> glsl_type::vec2_type),<br>
> _texture(ir_txb,<br>
> gpu_shader4_array_integer_derivs_only, glsl_type::ivec4_type,<br>
> glsl_type::isampler1DArray_type, glsl_type::vec2_type),<br>
> _texture(ir_tex, gpu_shader4_array_integer, <br>
> glsl_type::uvec4_type, glsl_type::usampler1DArray_type,<br>
> glsl_type::vec2_type),<br>
> _texture(ir_txb,<br>
> gpu_shader4_array_integer_derivs_only, glsl_type::uvec4_type,<br>
> glsl_type::usampler1DArray_type, glsl_type::vec2_type),<br>
> NULL);<br>
> <br>
> add_function("texture1DProj",<br>
> _texture(ir_tex, v110, <br>
> glsl_type::vec4_type, glsl_type::sampler1D_type,<br>
> glsl_type::vec2_type, TEX_PROJECT),<br>
> _texture(ir_tex, v110, <br>
> glsl_type::vec4_type, glsl_type::sampler1D_type,<br>
> glsl_type::vec4_type, TEX_PROJECT),<br>
> _texture(ir_txb, v110_derivatives_only,<br>
> glsl_type::vec4_type, glsl_type::sampler1D_type,<br>
> glsl_type::vec2_type, TEX_PROJECT),<br>
> @@ -3309,21 +3279,21 @@ builtin_builder::create_builtins()<br>
> _texture(ir_txb, derivatives_only, <br>
> glsl_type::vec4_type, glsl_type::sampler2D_type, glsl_type::vec2_type),<br>
> _texture(ir_tex, gpu_shader4_integer, <br>
> glsl_type::ivec4_type, glsl_type::isampler2D_type,<br>
> glsl_type::vec2_type),<br>
> _texture(ir_txb, gpu_shader4_integer_derivs_only,<br>
> glsl_type::ivec4_type, glsl_type::isampler2D_type,<br>
> glsl_type::vec2_type),<br>
> _texture(ir_tex, gpu_shader4_integer, <br>
> glsl_type::uvec4_type, glsl_type::usampler2D_type,<br>
> glsl_type::vec2_type),<br>
> _texture(ir_txb, gpu_shader4_integer_derivs_only,<br>
> glsl_type::uvec4_type, glsl_type::usampler2D_type,<br>
> glsl_type::vec2_type),<br>
> _texture(ir_tex, texture_external, <br>
> glsl_type::vec4_type, glsl_type::samplerExternalOES_type,<br>
> glsl_type::vec2_type),<br>
> NULL);<br>
> <br>
> add_function("texture2DArray",<br>
> _texture(ir_tex, texture_array, <br>
> glsl_type::vec4_type, glsl_type::sampler2DArray_type,<br>
> glsl_type::vec3_type),<br>
> - _texture(ir_txb, fs_texture_array, <br>
> glsl_type::vec4_type, glsl_type::sampler2DArray_type,<br>
> glsl_type::vec3_type),<br>
> + _texture(ir_txb, texture_array_derivs_only,<br>
> glsl_type::vec4_type, glsl_type::sampler2DArray_type,<br>
> glsl_type::vec3_type),<br>
> _texture(ir_tex, gpu_shader4_array_integer, <br>
> glsl_type::ivec4_type, glsl_type::isampler2DArray_type,<br>
> glsl_type::vec3_type),<br>
> _texture(ir_txb,<br>
> gpu_shader4_array_integer_derivs_only, glsl_type::ivec4_type,<br>
> glsl_type::isampler2DArray_type, glsl_type::vec3_type),<br>
> _texture(ir_tex, gpu_shader4_array_integer, <br>
> glsl_type::uvec4_type, glsl_type::usampler2DArray_type,<br>
> glsl_type::vec3_type),<br>
> _texture(ir_txb,<br>
> gpu_shader4_array_integer_derivs_only, glsl_type::uvec4_type,<br>
> glsl_type::usampler2DArray_type, glsl_type::vec3_type),<br>
> NULL);<br>
> <br>
> add_function("texture2DProj",<br>
> _texture(ir_tex, always_available, <br>
> glsl_type::vec4_type, glsl_type::sampler2D_type,<br>
> glsl_type::vec3_type, TEX_PROJECT),<br>
> _texture(ir_tex, always_available, <br>
> glsl_type::vec4_type, glsl_type::sampler2D_type,<br>
> glsl_type::vec4_type, TEX_PROJECT),<br>
> _texture(ir_txb, derivatives_only, <br>
> glsl_type::vec4_type, glsl_type::sampler2D_type,<br>
> glsl_type::vec3_type, TEX_PROJECT),<br>
> @@ -3421,41 +3391,41 @@ builtin_builder::create_builtins()<br>
> _texture(ir_tex, gpu_shader4_rect_integer,<br>
> glsl_type::uvec4_type, glsl_type::usampler2DRect_type,<br>
> glsl_type::vec4_type, TEX_PROJECT),<br>
> NULL);<br>
> <br>
> add_function("shadow1D",<br>
> _texture(ir_tex, v110, <br>
> glsl_type::vec4_type, glsl_type::sampler1DShadow_type,<br>
> glsl_type::vec3_type),<br>
> _texture(ir_txb, v110_derivatives_only,<br>
> glsl_type::vec4_type, glsl_type::sampler1DShadow_type,<br>
> glsl_type::vec3_type),<br>
> NULL);<br>
> <br>
> add_function("shadow1DArray",<br>
> _texture(ir_tex, texture_array, <br>
> glsl_type::vec4_type, glsl_type::sampler1DArrayShadow_type,<br>
> glsl_type::vec3_type),<br>
> - _texture(ir_txb, fs_texture_array,<br>
> glsl_type::vec4_type, glsl_type::sampler1DArrayShadow_type,<br>
> glsl_type::vec3_type),<br>
> + _texture(ir_txb, texture_array_derivs_only,<br>
> glsl_type::vec4_type, glsl_type::sampler1DArrayShadow_type,<br>
> glsl_type::vec3_type),<br>
> NULL);<br>
> <br>
> add_function("shadow2D",<br>
> _texture(ir_tex, v110, <br>
> glsl_type::vec4_type, glsl_type::sampler2DShadow_type,<br>
> glsl_type::vec3_type),<br>
> _texture(ir_txb, v110_derivatives_only,<br>
> glsl_type::vec4_type, glsl_type::sampler2DShadow_type,<br>
> glsl_type::vec3_type),<br>
> NULL);<br>
> <br>
> add_function("shadow2DArray",<br>
> _texture(ir_tex, texture_array, <br>
> glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type,<br>
> glsl_type::vec4_type),<br>
> - _texture(ir_txb, fs_texture_array,<br>
> glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type,<br>
> glsl_type::vec4_type),<br>
> + _texture(ir_txb, texture_array_derivs_only,<br>
> glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type,<br>
> glsl_type::vec4_type),<br>
> NULL);<br>
> <br>
> add_function("shadow1DProj",<br>
> _texture(ir_tex, v110, <br>
> glsl_type::vec4_type, glsl_type::sampler1DShadow_type,<br>
> glsl_type::vec4_type, TEX_PROJECT),<br>
> _texture(ir_txb, v110_derivatives_only,<br>
> glsl_type::vec4_type, glsl_type::sampler1DShadow_type,<br>
> glsl_type::vec4_type, TEX_PROJECT),<br>
> NULL);<br>
> <br>
> add_function("shadow2DArray",<br>
> _texture(ir_tex, texture_array, <br>
> glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type,<br>
> glsl_type::vec4_type),<br>
> - _texture(ir_txb, fs_texture_array,<br>
> glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type,<br>
> glsl_type::vec4_type),<br>
> + _texture(ir_txb, texture_array_derivs_only,<br>
> glsl_type::vec4_type, glsl_type::sampler2DArrayShadow_type,<br>
> glsl_type::vec4_type),<br>
> NULL);<br>
> <br>
> add_function("shadowCube",<br>
> _texture(ir_tex, gpu_shader4, <br>
> glsl_type::vec4_type, glsl_type::samplerCubeShadow_type,<br>
> glsl_type::vec4_type),<br>
> _texture(ir_txb, gpu_shader4_derivs_only,<br>
> glsl_type::vec4_type, glsl_type::samplerCubeShadow_type,<br>
> glsl_type::vec4_type),<br>
> NULL);<br>
> <br>
> add_function("shadow2DProj",<br>
> _texture(ir_tex, v110, <br>
> glsl_type::vec4_type, glsl_type::sampler2DShadow_type,<br>
> glsl_type::vec4_type, TEX_PROJECT),<br>
> _texture(ir_txb, v110_derivatives_only,<br>
> glsl_type::vec4_type, glsl_type::sampler2DShadow_type,<br>
> glsl_type::vec4_type, TEX_PROJECT),<br>
> -- <br>
> 2.17.1<br>
> <br>
> <br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
> <br>
</blockquote></div>