Christian Gmeiner
83f54e3c54
etnaviv: fix alpha test on GC3000
...
Store ref_value in PE_STENCIL_CONFIG_EXT as done by blob.
Fixes following piglits:
spec@ext_framebuffer_object@fbo-alphatest-formats
spec@ext_packed_float@fbo-alphatest-formats
spec@ext_texture_srgb@fbo-alphatest-formats
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028 >
2020-03-04 11:59:47 +00:00
Christian Gmeiner
f95fa3d1ac
etnaviv: update headers from rnndb
...
Update to etna_viv commit 3bc187a.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028 >
2020-03-04 11:59:47 +00:00
Jonathan Marek
1046d73af1
etnaviv: disable INT_FILTER for ASTC
...
Tested on GC3000: INT_FILTER bit is incompatible with ASTC formats.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3927 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3927 >
2020-02-27 20:31:45 +00:00
Christian Gmeiner
0c36b1c0db
etnaviv: enable texture upload memory throttling
...
Fixes oom-killer during piglit's streaming-texture-upload on a
SolidRun CuBox-i with 2GB of RAM.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3745 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3745 >
2020-02-07 18:21:54 +00:00
Marek Vasut
c32bd325e7
etnaviv: Destroy rsc->pending_ctx set in etna_resource_destroy()
...
Destroy rsc->pending_ctx set in etna_resource_destroy(), otherwise
the memory is allocated, never free'd, and becomes unreachable. This
fixes a memory leak.
Fixes: 9e672e4d20 ("etnaviv: keep references to pending resources")
Cc: <mesa-stable@lists.freedesktop.org >
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/3633 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3633 >
2020-02-04 06:27:19 +00:00
Christian Gmeiner
5b5b762475
etnaviv: drop default state for PE_STENCIL_CONFIG_EXT2
...
It gets emitted when needed.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3631 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3631 >
2020-01-29 23:31:04 +01:00
Jonathan Marek
6346490a2e
etnaviv: implement UBOs
...
At the same time, use pre-HALTI2 to use address register for indirect
uniform loads, since integers/LOAD instruction isn't always available.
Passes all dEQP-GLES3.functional.ubo.* on GC7000L. GC3000 with an extra
flush hack passes most of them, but still fails on some of the cases with
many loads.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3389 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3389 >
2020-01-29 11:47:34 +00:00
Martin Fuzzey
d1925fec53
etnaviv: update Android build files
...
etnaviv no longer builds on Android, fix this.
Signed-off-by: Martin Fuzzey <martin.fuzzey@flowbird.group >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3447 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3447 >
2020-01-24 14:03:28 +00:00
Matt Turner
4413537c80
util: Remove tmp argument from BITSET_FOREACH_SET macro
...
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3499 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3499 >
2020-01-23 01:52:43 +00:00
Marco Felsch
1607123ae7
etnaviv: Fix assert when try to accumulate an invalid fd
...
Check if it is a valid fd before merging it to the context's fd.
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de >
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3381 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3381 >
2020-01-14 17:40:10 +00:00
Christian Gmeiner
db7967ef9f
etnaviv: add deqp debug option
...
This new debug option will fake some driver CAPs to be able to run dEQP
for GLES3.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3351 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3351 >
2020-01-11 22:05:35 +00:00
Jonathan Marek
472593e9cf
etnaviv: remove unnecessary vertex_elements_state_create error checking
...
PIPE_CAP_MAX_VERTEX_BUFFERS already sets the maximum vertex_buffer_index.
There's no need to error on num_elements == 0 (if that can even happen).
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2020-01-08 12:27:35 -05:00
Jonathan Marek
76d93b437b
etnaviv: implement gl_VertexID/gl_InstanceID
...
Fixes:
dEQP-GLES3.functional.instanced.*
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2020-01-08 12:27:35 -05:00
Jonathan Marek
93ff6f5919
etnaviv: HALTI2+ instanced draw
...
Fixes:
dEQP-GLES3.functional.draw.draw_arrays_instanced.*
dEQP-GLES3.functional.draw.draw_elements_instanced.*
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2020-01-08 12:27:34 -05:00
Jonathan Marek
ea608ae23b
etnaviv: update headers from rnndb
...
Update to etna_viv commit 46af5f1d.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2020-01-08 12:27:34 -05:00
Jonathan Marek
680d806950
etnaviv: fix incorrectly failing vertex size assert
...
Changes the assert to match the comment above.
This assert was failing in some cases while running darkplaces.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2020-01-05 17:04:39 +00:00
Christian Gmeiner
a597a64ae2
etnaviv: move descriptor based texture structs
...
This moves the descriptor based texture structs and their helpers
into the only user.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
2020-01-04 20:44:36 +01:00
Christian Gmeiner
7c687d221d
etnaviv: move state based texture structs
...
This moves the state based texture structs and their helpers
into the only user.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
2020-01-04 20:44:36 +01:00
Christian Gmeiner
b178262cb9
etnaviv: use a better name for FE_VERTEX_STREAM_UNK14680
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2020-01-04 14:15:36 +01:00
Erik Faye-Lund
56fc791b31
etnaviv: use nir_lower_clip_halfz instead of open-coding
...
We already have a helper for this, so let's use that instead of rolling
our own version.
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Paul Cercueil <paul@crapouillou.net >
2020-01-03 22:48:19 +00:00
Christian Gmeiner
8d50ab5395
etnaviv: gc400 does not support any vertex sampler
...
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-03 09:23:41 +01:00
Christian Gmeiner
46b8273eb1
etnaviv: check if MSAA is supported
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
2020-01-03 08:31:02 +01:00
Marek Vasut
5e9106f7af
etnaviv: Do not filter out PIPE_FORMAT_S8_UINT_Z24_UNORM on pre-HALTI2
...
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: 64c7cdcae5 ("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-31 15:12:49 +00:00
Marek Vasut
a812cb57e5
etnaviv: Report correct number of vertex buffers
...
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-31 14:55:04 +00:00
Marek Vasut
45e1443fd8
etnaviv: tgsi: Fix gl_FrontFacing support
...
The GPU presents the state of the hardware front_face in internal
register 0 (i0), the range of which is 0.0f..1.0f.
This patch assigns the fragment shader input to this internal register.
Moreover, based on the internal front_ccw state, the value of the i0
register is inverted accordingly using SET.EQ/SEQ.NE instruction before
being further processed in the shader. This mimics the operation of the
NIR compiler.
Signed-off-by: Marek Vasut <marex@denx.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2868 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2868 >
2019-12-21 20:17:27 +01:00
Marek Vasut
f51ee564f5
etnaviv: Replace bitwise OR with logical OR
...
The test here is testing whether either variable is non-zero.
While currently the test works fine, it's fragile. Replace it
with logical OR to avoid the fragility.
Signed-off-by: Marek Vasut <marex@denx.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-20 13:15:37 +01:00
Christian Gmeiner
6e75f2172b
etnaviv: update resource status after flushing
...
Currently piglit spec@arb_occlusion_query@occlusion_query_conform
spins for ever as the resource status is never reset. See
etna_hw_get_query_result(..) for more details.
Fixes: 1456aa61cc ("etnaviv: Rework resource status tracking")
CC: <mesa-stable@lists.freedesktop.org >
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Tested-by: Marek Vasut <marex@denx.de >
2019-12-20 12:43:23 +01:00
Erico Nunes
8bf2b5db78
gallium/util: add alignment parameter to util_upload_index_buffer
...
At least on Mali Utgard, index buffers need to be aligned on 0x40.
To avoid duplicating this, add an alignment parameter.
Keep the previous default for the other existing users.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2445 >
2019-12-14 07:44:43 +01:00
Jonathan Marek
440cd835de
etnaviv: add missing vs_needs_z_div handling to NIR backend
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:31:40 -05:00
Jonathan Marek
64c7cdcae5
etnaviv: add missing formats
...
Add missing texture/render formats supported by hardware.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:10:29 -05:00
Jonathan Marek
d30499a3c8
etnaviv: remove swizzle from format table
...
The only format that needs swizzle is R8 emulated with L8, so we can get
rid of the SWIZ(X, Y, Z, W) everywhere.
Note: R8G8 also had a swizzle, but it wasn't necessary.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:10:28 -05:00
Jonathan Marek
017cbab5b0
etnaviv: disable integer vertex formats on pre-HALTI2 hardware
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:10:28 -05:00
Jonathan Marek
d34705c891
etnaviv: update INT_FILTER choice for GLES3 formats
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:09:08 -05:00
Jonathan Marek
15e9704ccb
etnaviv: set output mode and saturate bits
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:09:08 -05:00
Jonathan Marek
b7730c54a9
etnaviv: sRGB render target support
...
Note: no srgb render target support before HALTI3
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:09:08 -05:00
Jonathan Marek
39349e629a
etnaviv: remove sRGB formats from format table
...
This supports all sRGB formats, without having them in the format table.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 09:09:08 -05:00
Christian Gmeiner
06db271a6c
etnaviv: drop compiled_rs_state forward declaration
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 08:11:03 +00:00
Christian Gmeiner
5f7c5f5dd2
etnaviv: remove not used etna_bits_ones(..)
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-12-13 08:11:03 +00:00
Christian Gmeiner
1be220833c
etnaviv: remove dead code
...
ptiled is always NULL so the if statement is useless.
CoverityID: 1415572
Fixes: b962776530 ("etnaviv: rework compatible render base")
CC: <mesa-stable@lists.freedesktop.org >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-29 16:22:40 +01:00
Christian Gmeiner
1dfe6a3e9a
etnaviv: handle integer case for GENERIC_ATTRIB_SCALE
...
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-29 15:06:18 +01:00
Christian Gmeiner
5361ea2a9b
etnaviv: fix R10G10B10A2 vertex format entries
...
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-29 15:06:18 +01:00
Christian Gmeiner
06d7071bca
etnaviv: use NORMALIZE_SIGN_EXTEND
...
The blob driver does something like this for all vertex formats:
if (normalize) {
if (OPENGL_ES30)
val = VIVS_FE_VERTEX_ELEMENT_CONFIG_NORMALIZE_SIGN_EXTEND;
else
val = VIVS_FE_VERTEX_ELEMENT_CONFIG_NORMALIZE_ON;
} else {
val = VIVS_FE_VERTEX_ELEMENT_CONFIG_NORMALIZE_OFF;
}
As there is no way to get to that information in gallium we always
assume OPENGL_ES30.
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-29 15:06:18 +01:00
Christian Gmeiner
ca6c73f335
etnaviv: fix integer vertex formats
...
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-29 15:06:18 +01:00
Jonathan Marek
2da4a58ed9
etnaviv: support 3d/array/integer formats in texture descriptors
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-26 19:07:04 +01:00
Jonathan Marek
7806e058c9
etnaviv: blt: fix partial ZS clears with TS
...
If not all bits are cleared, then BLT needs to be given the current clear
value and not the new one.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-26 19:04:51 +01:00
Jonathan Marek
5159db60fc
etnaviv: implement 64bpp clear
...
At the same time, update etna_clear_blit_pack_rgba to work with integer
formats.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-25 20:23:22 +01:00
Jonathan Marek
2214f99c07
etnaviv: avoid using RS for 64bpp formats
...
At the same time, this change allows using BLT for 8bpp formats
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-25 20:22:43 +01:00
Christian Gmeiner
92d5e3c692
etnaviv: add support for extended pe formats
...
Use the extended format if an such a format was passed.
v1 -> v2:
- set FORMAT_MASK bit when using ext PE format as suggested
by Wladimir J. van der Laan
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
2019-11-25 20:12:52 +01:00
Christian Gmeiner
396818fd9d
etnaviv: handle 8 byte block in tiling
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com >
Reviewed-by: Jonathan Marek <jonathan@marek.ca >
2019-11-25 20:11:30 +01:00
Christian Gmeiner
47c7c4263c
etnaviv: use a more self-explanatory param name
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com >
2019-11-22 10:47:13 +00:00