summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-01-03zink: implement txfErik Faye-Lund3-8/+85
texelFetch is a requirement for OpenGL 3.0, so this gets us a step closer to GL 3.0 support. Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-03radv: implement VK_AMD_mixed_attachment_samplesSamuel Pitoiset3-5/+28
With VK_AMD_mixed_attachment_samples, the number of depth/stencil samples isn't always equal to the number of color samples. Adjust the number of Z samples when it's different but make sure to have a consistent sample count if there are no depth/stencil attachments. Also adjust the number of samples used for fragment shaders which is the number of color samples if mixed attachment samples are used. Only enabled on GFX8+ because it's untested on previous chips. All dEQP-VK.pipeline.multisample.mixed_attachment_samples.* now pass. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3018> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3018>
2020-01-03radv: record number of color/depth samples for each subpassSamuel Pitoiset2-0/+5
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3018>
2020-01-03etnaviv: gc400 does not support any vertex samplerChristian Gmeiner1-0/+4
On STM32MP1 fixes the dEQPs below and changes the dEQP run statistics to: - Passed: 16856/17346 (97.2%) - Failed: 236/17346 (1.4%) - Not supported: 199/17346 (1.1%) + Passed: 16780/17346 (96.7%) + Failed: 86/17346 (0.5%) + Not supported: 425/17346 (2.5%) Warnings: 55/17346 (0.3%) dEQP-GLES2.functional.shaders.struct.uniform.sampler_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_nested_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_array_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_function_arg_vertex dEQP-GLES2.functional.shaders.struct.uniform.sampler_in_array_function_arg_vertex dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2d dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dproj_vec3 dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dproj_vec4 dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dlod dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dprojlod_vec3 dEQP-GLES2.functional.shaders.texture_functions.vertex.texture2dprojlod_vec4 dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecube dEQP-GLES2.functional.shaders.texture_functions.vertex.texturecubelod dEQP-GLES2.functional.shaders.random.texture.vertex.0 dEQP-GLES2.functional.shaders.random.texture.vertex.1 dEQP-GLES2.functional.shaders.random.texture.vertex.2 dEQP-GLES2.functional.shaders.random.texture.vertex.3 dEQP-GLES2.functional.shaders.random.texture.vertex.4 dEQP-GLES2.functional.shaders.random.texture.vertex.5 dEQP-GLES2.functional.shaders.random.texture.vertex.6 dEQP-GLES2.functional.shaders.random.texture.vertex.7 dEQP-GLES2.functional.shaders.random.texture.vertex.8 dEQP-GLES2.functional.shaders.random.texture.vertex.9 dEQP-GLES2.functional.shaders.random.texture.vertex.10 dEQP-GLES2.functional.shaders.random.texture.vertex.11 dEQP-GLES2.functional.shaders.random.texture.vertex.12 dEQP-GLES2.functional.shaders.random.texture.vertex.13 dEQP-GLES2.functional.shaders.random.texture.vertex.14 dEQP-GLES2.functional.shaders.random.texture.vertex.16 dEQP-GLES2.functional.shaders.random.texture.vertex.17 dEQP-GLES2.functional.shaders.random.texture.vertex.18 dEQP-GLES2.functional.shaders.random.texture.vertex.19 dEQP-GLES2.functional.shaders.random.texture.vertex.20 dEQP-GLES2.functional.shaders.random.texture.vertex.22 dEQP-GLES2.functional.shaders.random.texture.vertex.23 dEQP-GLES2.functional.shaders.random.texture.vertex.24 dEQP-GLES2.functional.shaders.random.texture.vertex.26 dEQP-GLES2.functional.shaders.random.texture.vertex.28 dEQP-GLES2.functional.shaders.random.texture.vertex.29 dEQP-GLES2.functional.shaders.random.texture.vertex.31 dEQP-GLES2.functional.shaders.random.texture.vertex.34 dEQP-GLES2.functional.shaders.random.texture.vertex.37 dEQP-GLES2.functional.shaders.random.texture.vertex.38 dEQP-GLES2.functional.shaders.random.texture.vertex.39 dEQP-GLES2.functional.shaders.random.texture.vertex.40 dEQP-GLES2.functional.shaders.random.texture.vertex.42 dEQP-GLES2.functional.shaders.random.texture.vertex.43 dEQP-GLES2.functional.shaders.random.texture.vertex.44 dEQP-GLES2.functional.shaders.random.texture.vertex.45 dEQP-GLES2.functional.shaders.random.texture.vertex.48 dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_nearest_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_nearest_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_mirror dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_clamp dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_repeat dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_mirror dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_clamp dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_repeat dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_mirror dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_clamp dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_repeat dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_mirror dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_clamp dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_repeat dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_mirror dEQP-GLES2.functional.fbo.api.attach_names dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.info_query.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.info_query.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.info_query.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.info_query.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.info_query.unused_uniforms.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_array_first_elem_without_brackets.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array_first_elem_without_brackets.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_array_first_elem_without_brackets.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_full.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.basic_array.sampler2D_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.basic_array.sampler2D_both dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.array_in_struct.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.basic_array_assign_partial.array_in_struct.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms.sampler2D_samplerCube_vertex dEQP-GLES2.functional.uniform_api.value.assigned.unused_uniforms.sampler2D_samplerCube_both dEQP-GLES2.functional.uniform_api.random.0 dEQP-GLES2.functional.uniform_api.random.3 dEQP-GLES2.functional.uniform_api.random.6 dEQP-GLES2.functional.uniform_api.random.11 dEQP-GLES2.functional.uniform_api.random.14 dEQP-GLES2.functional.uniform_api.random.21 dEQP-GLES2.functional.uniform_api.random.22 dEQP-GLES2.functional.uniform_api.random.24 dEQP-GLES2.functional.uniform_api.random.25 dEQP-GLES2.functional.uniform_api.random.29 dEQP-GLES2.functional.uniform_api.random.30 dEQP-GLES2.functional.uniform_api.random.32 dEQP-GLES2.functional.uniform_api.random.33 dEQP-GLES2.functional.uniform_api.random.37 dEQP-GLES2.functional.uniform_api.random.41 dEQP-GLES2.functional.uniform_api.random.49 dEQP-GLES2.functional.uniform_api.random.51 dEQP-GLES2.functional.uniform_api.random.55 dEQP-GLES2.functional.uniform_api.random.61 dEQP-GLES2.functional.uniform_api.random.69 dEQP-GLES2.functional.uniform_api.random.72 dEQP-GLES2.functional.uniform_api.random.78 dEQP-GLES2.functional.uniform_api.random.79 dEQP-GLES2.functional.uniform_api.random.82 dEQP-GLES2.functional.uniform_api.random.87 dEQP-GLES2.functional.uniform_api.random.88 dEQP-GLES2.functional.uniform_api.random.94 dEQP-GLES2.functional.uniform_api.random.95 dEQP-GLES2.functional.uniform_api.random.96 Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Marek Vasut <marex@denx.de>
2020-01-03etnaviv: check if MSAA is supportedChristian Gmeiner1-0/+2
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Jonathan Marek <jonathan@marek.ca>
2020-01-03u_vbuf: don't try to delete NULL driver CSOIago Toral Quiroga1-1/+2
Since 18a8c3f7f11 we don't create a driver CSO if there are any incompatible elements, so only ask backends to delete it if it exists. Fixes multiple CTS crashes in V3D. Fixes: 18a8c3f7f11 ("u_vbuf: Only create driver CSO if no incompatible elements") Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2020-01-03iris: Set nir_shader_compiler_options::unify_interfaces.Kenneth Graunke2-2/+3
This is technically enabling the option in the common intel backend code, but only the st/nir linker uses the option, so it's iris-only. Fixes Piglit's spec/glsl-1.50/execution/geometry/clip-distance-vs-gs-out Closes: #2274 Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3249> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3249>
2020-01-03st/nir: Optionally unify inputs_read/outputs_written when linking.Kenneth Graunke2-0/+28
i965 and iris use inputs_read/outputs_written for a shader stage to determine the layout of input and output storage. Adjacent stages must agree on the layout, so adjacent input/output bitfields must match. This patch adds a new nir_shader_compiler_options::unify_interfaces flag which asks the linker to unify the input/output interfaces between adjacent stages. Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3249>
2020-01-03intel: Drop Gen11 WaBTPPrefetchDisable workaroundKenneth Graunke4-49/+10
This isn't needed on production Icelake hardware. Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com> Acked-by: Jason Ekstrand <jason@jlekstrand.net> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3250> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3250>
2020-01-02intel: Remove unused Tigerlake PCI IDJordan Justen1-1/+0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
2020-01-02pan/midgard: Use upper ALU tags for MFBD writeoutAlyssa Rosenzweig3-2/+22
It's not clear yet what the distinction is. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02pan/midgard: Identity ld_color_buffer as 32-bitAlyssa Rosenzweig3-4/+4
I'm not sure why I mistakenly identified it as an 8-bit op before. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02pan/midgard: Remove old commentAlyssa Rosenzweig1-1/+0
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02pan/midgard: Generate MRT writeout loopsAlyssa Rosenzweig5-31/+84
They need a very particular form; the naive way we did before is not sufficient in practice, it doesn't look like. So let's follow the rough structure of the blob's writeout since this is fixed code anyway. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02pan/midgard: Generalize IS_ALU and quadword_sizeAlyssa Rosenzweig8-98/+53
There are more ALU tags, let's do some cleanup while we're at it. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02pan/midgard: Use better heuristic for shader terminationAlyssa Rosenzweig1-24/+17
This still may not be perfect (in the sense that legal shaders might still get cut off) but this fits how writeout is done with both Panfrost and the blob, so it's good enough for what we need and allows MRT shaders to be sanely disassembled. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02pan/midgard: Fix memory corruption in constant combiningAlyssa Rosenzweig1-1/+1
It's a long story... but we'd try to insert constants that weren't there and end up clobbering fields in the bundle following the constant array... Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02panfrost: Pack MRT blend shaders into a single BOAlyssa Rosenzweig3-22/+38
Blend shader size and location in memory is considerably constrained, probably to facilitate optimizations (my guess is that blend shaders are run strictly out of i-cache). We need to pack the blend shaders for each RT of a single framebuffer together. The easiest way to do this is at draw time which is not terribly efficient but will hold us over for now. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02panfrost: Handle RGB16F colour clearAlyssa Rosenzweig1-0/+2
We don't handle this format yet, but we will soon, and the abort in pan_pack_color is possible even without exposing the format... Handling this gracefully might not be required by the spec but let's not crash. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02panfrost: Store internal formatTomeu Vizoso2-2/+7
It's needed by u_transfer_helper to know when the depth+stencil buffer has been split. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02panfrost: Map with size of first layer for 3D texturesTomeu Vizoso2-2/+8
As that's what Gallium expects in transfer.layer_stride. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02panfrost: Dynamically allocate array of texture pointersTomeu Vizoso3-12/+28
With 3D textures we can have lots of layers, so better allocate it dynamically at runtime. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2020-01-02meson: Enable -Werror=int-conversion.Bas Nieuwenhuizen1-0/+1
I think implicit conversions here are almost always wrong: 1) wrong argument position ptr vs. int 2) will often have issues with 32-bit platforms. Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2570> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2570>
2020-01-02turnip: Use VK_NULL_HANDLE instead of NULL.Bas Nieuwenhuizen1-1/+1
Only occurrence of implicitly converting pointer->int. Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2570>
2020-01-02amd/common: Always initialize gfx9 mipmap offset/pitch.Bas Nieuwenhuizen2-7/+5
The WSI expects pitch to be meaningful even for tiled textures. (It is used for the pitch in modesetting and X11) Fixes: 824bd0830e8 "radv: return the correct pitch for linear mipmaps on GFX10" Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2301 Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2304 Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3245> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3245>
2020-01-02nir: print non-uniform tex fields.Bas Nieuwenhuizen1-0/+8
To ease debugging in the future. Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3246> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3246>
2020-01-02nir: Add clone/hash/serialize support for non-uniform tex instructions.Bas Nieuwenhuizen3-1/+12
These were missed when the fields got added. Added it everywhere where texture_index got used and it made sense. Found this in "The Surge 2", where the inliner does not copy the fields, resulting in corruption and hangs. Fixes: 3bd54576415 "nir: Add a lowering pass for non-uniform resource access" Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1203 Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3246>
2019-12-31pan/midgard: Optimize branches with inverted argumentsAfonso Bordado3-0/+26
Remove the invert on arguments to branches, and invert the branch condition instead. This saves one instruction per inverted argument. Closes #2088 Signed-off-by: Afonso Bordado <afonsobordado@az8.co> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-31pan/midgard: Move midgard_is_branch_unit to helpersAfonso Bordado2-7/+6
Signed-off-by: Afonso Bordado <afonsobordado@az8.co> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-31etnaviv: Do not filter out PIPE_FORMAT_S8_UINT_Z24_UNORM on pre-HALTI2Marek Vasut1-1/+2
The format PIPE_FORMAT_S8_UINT_Z24_UNORM is supported even on pre-HALTI hardware like GCnano. Do not report it as unsupported format. This fixes the following dEQP on GCnano: dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.depth_stencil_unsigned_int_24_8 Fixes: 64c7cdcae51 ("etnaviv: add missing formats") Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3200> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3200>
2019-12-31etnaviv: Report correct number of vertex buffersMarek Vasut1-0/+2
The GCnano has only 4 vertex buffers instead of 16. This information can be extracted from the GPU status registers and is already stored in screen->specs.stream_count. Use PIPE_CAP_MAX_VERTEX_BUFFERS to report this information and permit u_vbuf to reorganize the shaders to fit. This fixes the following dEQP on GCnano: dEQP-GLES2.functional.shaders.conversions.vector_combine.float_float_float_float_to_vec4_vertex This fixes all the other dEQP-GLES2.functional.shaders.conversions.* which used to fail on GCnano. Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3241> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3241>
2019-12-31aco: Fix uniform i2i64.Timur Kristóf1-1/+1
Fixes 240 failing test cases in dEQP-VK.spirv_assembly which were failing due to a bad s_ashr_i32 instruction. This commit fixes the instruction format along with the definitions of the instruction. Fixes: 11f43caaeca166c96ae49dbd506b6f58dd4a13fb Cc: 19.3 <mesa-stable@lists.freedesktop.org> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-12-31android: Fix u_format_table.c being generated twiceRobert Foss1-4/+1
Two competing rules for defining u_format_table.c exists, which is an error. Additionally the more general rule lacks the inclusion of format/u_format.csv. Fixes: 882ca6dfb0 ("util: Move gallium's PIPE_FORMAT utils to /util/format/") Signed-off-by: Robert Foss <robert.foss@collabora.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
2019-12-31pan/midgard: Remove prepacked_branchAlyssa Rosenzweig6-39/+6
It's an ugly hack that's no longer used. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-31pan/midgard: Convert fragment writeout to proper branchesAlyssa Rosenzweig1-3/+14
This eliminates the only use of prepacked_branch, which is a such a hack anyway. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30winsys/radeon: initialize pte_fragment_sizeMarek Olšák1-0/+1
Cc: 19.2 19.3 <mesa-stable@lists.freedesktop.org> Closes: #2179 Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-12-30Revert "u_vbuf: Regard non-constant vbufs with non-instance elements as free"Marek Olšák1-13/+4
This reverts commit c6ef79c488bb5fffde31e7065fd3e575f3c25fb5. It broke torcs.
2019-12-30panfrost: Respect glPointSize()Alyssa Rosenzweig1-1/+5
We have native support for this somehow. Fixes the mesa demo `points` Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30panfrost: Remove MRT indirection in blend shadersAlyssa Rosenzweig4-43/+43
Since we have a separate blend shader for each render target, let's simplify this structure and reduce the options memory footprint by 88% or something goofy like that. Should also enable separate blending per render target. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30panfrost: Implement integer varyingsAlyssa Rosenzweig3-1/+55
We need to actually work out the varying format on demand, rather than assuming rgba32f. Fixes dEQP-GLES3.functional.fragment_out.basic.int.* Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30panfrost: Disable some CAPs we want loweredAlyssa Rosenzweig1-0/+3
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30panfrost: Identify glProvokingVertex flagAlyssa Rosenzweig2-3/+8
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30pan/midgard: Implement flat shadingAlyssa Rosenzweig2-6/+17
We need to shuffle around some lowerings but it's just a flag. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30pan/midgard: Use type-appropriate st_varyAlyssa Rosenzweig1-0/+16
We would like to store (u)ints as well. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30pan/midgard: Promote tilebuffer reads to 32-bitAlyssa Rosenzweig1-0/+5
Fixes (among others) dEQP-GLES3.functional.fbo.render.shared_colorbuffer_clear.tex2d_rgba16f Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
2019-12-30glsl: Set .flat for gl_FrontFacingAlyssa Rosenzweig1-4/+7
It is a boolean. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3237> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3237>
2019-12-30radv: return the correct pitch for linear mipmaps on GFX10Samuel Pitoiset3-2/+6
On GFX9, the pitch of a level is always the pitch of the entire image but not on GFX10. This fixes graphics glithes with Halo - The Master Chief Collection. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2188 CC: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-12-30meta: Cleanup function for DrawTexYevhenii Kolesnikov1-0/+14
Buffer object was never freed, causing memory leaks. Fixes: 76cfe2bc443 ("meta: Don't pollute the buffer object namespace in _mesa_meta_DrawTex") CC: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1390> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/1390>
2019-12-30gallium/gallivm/tgsi: enable tessellation shadersJan Zielinski3-97/+552
Tessellation Control and Evaluation shaders are implementing tessellation and require special handling of their inputs and outputs. TCS can write out not only per-vertex, but also per-patch (per-primitive) attributes and tessellation factor values that control the tessellator. TES can read TCS outputs, plus must be feeded with new system values (tessellation coordinates) that are outputs of the tessellator fixed function. TCS can also contain calls to barrier() function (similar to compute shaders). Reviewed-by: Roland Scheidegger <sroland@vmware.com> Reviewed-by: Alok Hota <alok.hota@intel.com>
2019-12-30llvmpipe: enable ARB_shader_group_vote.Dave Airlie7-21/+82
This just adds the NIR paths for shader group vote. v2: drop feq for now. (Roland) Reviewed-by: Roland Scheidegger <sroland@vmware.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3213> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3213>