aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/etnaviv
Commit message (Collapse)AuthorAgeFilesLines
* etnaviv: enable shareable shadersChristian Gmeiner2020-03-131-0/+1
| | | | | | | | | | We are not using any pctx reference in the shader so it seems fine to enable this cap. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4095> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4095>
* etnaviv: get rid of etna_spec in etna_contextChristian Gmeiner2020-03-1313-76/+98
| | | | | | | | | There is no need to have a complete copy of etna_spec - just reference the one and only from etna_screen. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4095>
* etnaviv: implement emit_string_markerChristian Gmeiner2020-03-082-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Writes string to cmdstream in payload of a nop command. Could be useful for internal driver debugging too. Here is how it looks decoded: 0x18000000, /* NOP (3) OP=NOP */ 0x65736572, /* rese */ 0x18000000, /* NOP (3) OP=NOP */ 0x00000074, /* t */ 0x00000000, /* GL.API_MODE := OPENGL */ or 0x00000705, /* GL.STALL_TOKEN := FROM=RA,TO=PE,FLIP0=0,FLIP1=0 */ 0x00000001, /* TS.FLUSH_CACHE := FLUSH=1 */ 0x18000000, /* NOP (3) OP=NOP */ 0x616e7465, /* etna */ 0x18000000, /* NOP (3) OP=NOP */ 0x6275735f, /* _sub */ 0x18000000, /* NOP (3) OP=NOP */ 0x5f74696d, /* mit_ */ 0x18000000, /* NOP (3) OP=NOP */ 0x735f7372, /* rs_s */ 0x18000000, /* NOP (3) OP=NOP */ 0x65746174, /* tate */ 0x00004606, /* RS.CONFIG := SOURCE_FORMAT=A8R8G8B8 Signed-off-by: Christian Gmeiner <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3744> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3744>
* etnaviv: increase number of supported varyings to 16Christian Gmeiner2020-03-084-7/+10
| | | | | | | | | No deqp regressions. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827>
* etnaviv: update headers from rnndbChristian Gmeiner2020-03-083-7/+7
| | | | | | | | Update to etna_viv commit fd2e2cfd. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827>
* etnaviv: ask kernel for max number of supported varyingsChristian Gmeiner2020-03-081-8/+6
| | | | | | | | | The inital etnaviv kernel driver in 4.5 has support for this param. See kernel commit 602eb48966d7b7f7e64dca8d9ea2842d83bfae73 Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3827>
* etnaviv: add etna_constbuf_state objectChristian Gmeiner2020-03-064-12/+22
| | | | | | | | | | With this new state object we keep track of enabled pipe_constant_buffer and only mark them as read when needed. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4088> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4088>
* etnaviv: fix alpha test on GC3000Christian Gmeiner2020-03-043-2/+15
| | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028>
* etnaviv: update headers from rnndbChristian Gmeiner2020-03-048-55/+55
| | | | | | | Update to etna_viv commit 3bc187a. Signed-off-by: Christian Gmeiner <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4028>
* etnaviv: disable INT_FILTER for ASTCJonathan Marek2020-02-271-0/+3
| | | | | | | | | Tested on GC3000: INT_FILTER bit is incompatible with ASTC formats. Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3927> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3927>
* etnaviv: enable texture upload memory throttlingChristian Gmeiner2020-02-071-0/+16
| | | | | | | | | | Fixes oom-killer during piglit's streaming-texture-upload on a SolidRun CuBox-i with 2GB of RAM. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3745> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3745>
* etnaviv: Destroy rsc->pending_ctx set in etna_resource_destroy()Marek Vasut2020-02-041-0/+1
| | | | | | | | | | | | | 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: 9e672e4d20fb ("etnaviv: keep references to pending resources") Cc: <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3633> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3633>
* etnaviv: drop default state for PE_STENCIL_CONFIG_EXT2Christian Gmeiner2020-01-291-1/+0
| | | | | | | | | It gets emitted when needed. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3631> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3631>
* etnaviv: implement UBOsJonathan Marek2020-01-299-75/+109
| | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3389> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3389>
* etnaviv: update Android build filesMartin Fuzzey2020-01-241-1/+4
| | | | | | | | | etnaviv no longer builds on Android, fix this. Signed-off-by: Martin Fuzzey <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3447> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3447>
* util: Remove tmp argument from BITSET_FOREACH_SET macroMatt Turner2020-01-231-3/+2
| | | | | | Reviewed-by: Jason Ekstrand <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3499> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3499>
* etnaviv: Fix assert when try to accumulate an invalid fdMarco Felsch2020-01-141-1/+2
| | | | | | | | | | Check if it is a valid fd before merging it to the context's fd. Signed-off-by: Marco Felsch <[email protected]> Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3381> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3381>
* etnaviv: add deqp debug optionChristian Gmeiner2020-01-112-1/+8
| | | | | | | | | | This new debug option will fake some driver CAPs to be able to run dEQP for GLES3. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3351> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3351>
* etnaviv: remove unnecessary vertex_elements_state_create error checkingJonathan Marek2020-01-081-17/+3
| | | | | | | | | 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 <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: implement gl_VertexID/gl_InstanceIDJonathan Marek2020-01-084-0/+21
| | | | | | | | Fixes: dEQP-GLES3.functional.instanced.* Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: HALTI2+ instanced drawJonathan Marek2020-01-085-11/+28
| | | | | | | | | Fixes: dEQP-GLES3.functional.draw.draw_arrays_instanced.* dEQP-GLES3.functional.draw.draw_elements_instanced.* Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: update headers from rnndbJonathan Marek2020-01-081-6/+31
| | | | | | | Update to etna_viv commit 46af5f1d. Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: fix incorrectly failing vertex size assertJonathan Marek2020-01-051-1/+1
| | | | | | | | | Changes the assert to match the comment above. This assert was failing in some cases while running darkplaces. Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: move descriptor based texture structsChristian Gmeiner2020-01-042-40/+31
| | | | | | | | This moves the descriptor based texture structs and their helpers into the only user. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: move state based texture structsChristian Gmeiner2020-01-042-49/+42
| | | | | | | | This moves the state based texture structs and their helpers into the only user. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: use a better name for FE_VERTEX_STREAM_UNK14680Christian Gmeiner2020-01-042-2/+2
| | | | Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: use nir_lower_clip_halfz instead of open-codingErik Faye-Lund2020-01-031-20/+3
| | | | | | | | We already have a helper for this, so let's use that instead of rolling our own version. Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Paul Cercueil <[email protected]>
* etnaviv: gc400 does not support any vertex samplerChristian Gmeiner2020-01-031-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 <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
* etnaviv: check if MSAA is supportedChristian Gmeiner2020-01-031-0/+2
| | | | | Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: Do not filter out PIPE_FORMAT_S8_UINT_Z24_UNORM on pre-HALTI2Marek Vasut2019-12-311-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 <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3200> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3200>
* etnaviv: Report correct number of vertex buffersMarek Vasut2019-12-311-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 <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3241> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3241>
* etnaviv: tgsi: Fix gl_FrontFacing supportMarek Vasut2019-12-211-10/+53
| | | | | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2868> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2868>
* etnaviv: Replace bitwise OR with logical ORMarek Vasut2019-12-201-1/+1
| | | | | | | | | 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 <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: update resource status after flushingChristian Gmeiner2019-12-201-0/+8
| | | | | | | | | | | 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: 1456aa61cc5 ("etnaviv: Rework resource status tracking") CC: <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]> Tested-by: Marek Vasut <[email protected]>
* gallium/util: add alignment parameter to util_upload_index_bufferErico Nunes2019-12-141-1/+1
| | | | | | | | | | 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 <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2445>
* etnaviv: add missing vs_needs_z_div handling to NIR backendJonathan Marek2019-12-131-1/+21
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: add missing formatsJonathan Marek2019-12-132-28/+60
| | | | | | | Add missing texture/render formats supported by hardware. Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: remove swizzle from format tableJonathan Marek2019-12-131-80/+65
| | | | | | | | | | 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 <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: disable integer vertex formats on pre-HALTI2 hardwareJonathan Marek2019-12-131-1/+13
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: update INT_FILTER choice for GLES3 formatsJonathan Marek2019-12-134-2/+40
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: set output mode and saturate bitsJonathan Marek2019-12-135-3/+30
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: sRGB render target supportJonathan Marek2019-12-133-15/+32
| | | | | | | Note: no srgb render target support before HALTI3 Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: remove sRGB formats from format tableJonathan Marek2019-12-131-23/+9
| | | | | | | This supports all sRGB formats, without having them in the format table. Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* etnaviv: drop compiled_rs_state forward declarationChristian Gmeiner2019-12-131-1/+0
| | | | Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: remove not used etna_bits_ones(..)Christian Gmeiner2019-12-131-6/+0
| | | | Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: remove dead codeChristian Gmeiner2019-11-291-3/+0
| | | | | | | | | | ptiled is always NULL so the if statement is useless. CoverityID: 1415572 Fixes: b9627765303 ("etnaviv: rework compatible render base") CC: <[email protected]> Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: handle integer case for GENERIC_ATTRIB_SCALEChristian Gmeiner2019-11-291-1/+5
| | | | | Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: fix R10G10B10A2 vertex format entriesChristian Gmeiner2019-11-291-4/+4
| | | | | Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: use NORMALIZE_SIGN_EXTENDChristian Gmeiner2019-11-291-1/+1
| | | | | | | | | | | | | | | | | | | 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 <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: fix integer vertex formatsChristian Gmeiner2019-11-291-24/+24
| | | | | Reviewed-by: Jonathan Marek <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]>