aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* ci: Run tests on i386 cross buildsAdam Jackson2019-09-171-1/+3
| | | | | | | | | Yes, some tests fail, but we can turn those into XFAILs at meson time. Better to keep the things that work working than not cover them at all. Unfortunately XPASS results will not cause the build to fail until we update CI to meson 0.51 or newer. Reviewed-by: Daniel Stone <[email protected]>
* Fix timespec_from_nsec test for 32-bit time_tJon Turney2019-09-171-1/+1
| | | | | | | | | Since struct timespec's tv_sec member is of type time_t, adjust the expected value to allow for the truncation which will occur with 32-bit time_t. Reviewed-by: Lionel Landwerlin <[email protected]> Reviewed-by: Adam Jackson <[email protected]>
* iris: close screen fd on iris_destroy_screenTapani Pälli2019-09-171-0/+1
| | | | | | | | | Otherwise it never gets closed, this fixes errors seen with deqp-egl where we end up opening 1024 files. Fixes: 2dce0e94 ("iris: Initial commit of a new 'iris' driver for Intel Gen8+ GPUs.") Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* ac: Remove DEBUG workaroundMichel Dänzer2019-09-171-6/+0
| | | | | | As of version 7, LLVM uses LLVM_DEBUG instead of just DEBUG. Reviewed-by: Timothy Arceri <[email protected]>
* swr: Limit DEBUG workaround to LLVM < 7Michel Dänzer2019-09-173-3/+21
| | | | | | As of version 7, LLVM uses LLVM_DEBUG instead of just DEBUG. Reviewed-by: Timothy Arceri <[email protected]>
* gallivm: Limit DEBUG workaround to LLVM < 7Michel Dänzer2019-09-171-0/+4
| | | | | | As of version 7, LLVM uses LLVM_DEBUG instead of just DEBUG. Reviewed-by: Timothy Arceri <[email protected]>
* st/mesa: remove always-true expressionErik Faye-Lund2019-09-171-1/+0
| | | | | | | | | | In case the GLSL version is 130 or higher, we've already enabled ARB_shader_bit_encoding a bit earlier in this same function. So this condition will always be true. Signed-off-by: Erik Faye-Lund <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* etnaviv: a bit of micro-optimizationChristian Gmeiner2019-09-172-1/+4
| | | | | Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* lima: reset scissor state if scissor test is disabledIcenowy Zheng2019-09-171-0/+4
| | | | | | | | | | | The PLBU seems to preserve scissor state between draws, and since lima doesn't emit PLBU_CMD_SCISSORS() if scissor test is disabled, it uses state from previous draw. Fix it by emitting PLBU_CMD_SCISSORS() for full fb if scissor test is disabled. Signed-off-by: Icenowy Zheng <[email protected]> Reviewed-by: Vasily Khoruzhick <[email protected]> Reviewed-by: Qiang Yu <[email protected]>
* vulkan: Update the XML and headers to 1.1.123Jason Ekstrand2019-09-171-42/+64
| | | | Acked-by: Caio Marcelo de Oliveira Filho <[email protected]>
* spirv: Handle ShaderLayer and ShaderViewportIndex capabilitiesCaio Marcelo de Oliveira Filho2019-09-161-0/+2
| | | | | | | | SPIR-V 1.5 incorported the SPV_EXT_shader_viewport_index_layer but splitting into the two capabilities above. Just handle them as we support the extension already. Reviewed-by: Jason Ekstrand <[email protected]>
* spirv: Update JSON and headers to 1.5Caio Marcelo de Oliveira Filho2019-09-162-73/+1005
| | | | Acked-by: Jason Ekstrand <[email protected]>
* freedreno: Fix invalid read when a block has no instructions.Eric Anholt2019-09-161-2/+3
| | | | | | | | | | | | | We can't deref list_(first/last)_entries unless we know we have at least one. Instead, just use our IP we've been tracking as we go to set up the start ip, and fill in the end IP as we walk instructions. Fixes a complaint in valgrind on dEQP-GLES3.functional.transform_feedback.* which sometimes has an empty main (non-END) block when the VS inputs are just directly mapped to outputs without any ALU ops. Reviewed-by: Rob Clark <[email protected]>
* st/mesa: Increase GL_POINT_SIZE_RANGE minimum to 1.0Kenneth Graunke2019-09-161-4/+1
| | | | | | | | | | | | | | | | | | Table 23.54 of the OpenGL 4.5 spec lists the minimum values for GL_POINT_SIZE_RANGE as [1, 1]. So zero is not allowed (even though arguably this could be useful for MSAA rendering, where a sub-1px point might cover only some samples...) This fixes the WebGL 2.0 conformance suite's state.gl-get-calls test on Chromium on Linux, which uses desktop OpenGL. The test checks that the minimum value of GL_ALIASED_POINT_SIZE_RANGE is 1. Unfortunately, that query doesn't exist in desktop GL, so it checks POINT_SIZE_RANGE, which is the anti-aliased value. There's not really anything better for Chromium to do here, unfortunately. When running Chromium with --api=es3, it maps it to the correct query and the test already works. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* st/mesa: Prefer 5551 formats for GL_UNSIGNED_SHORT_5_5_5_1.Kenneth Graunke2019-09-161-0/+7
| | | | | | | | | | | | Previously, internalformat GL_RGBA and type GL_UNSIGNED_SHORT_5_5_5_1 was promoted to RGBA8888 as the table entry with the 5551 formats is listed below the 8888 entry, and it also doesn't have GL_RGBA as a possible internalformat. Using actual 5551 fixes the following dEQP-EGL test: - dEQP-EGL.functional.image.modify.tex_rgb5_a1_tex_subimage_rgba8 Reviewed-by: Eric Anholt <[email protected]>
* radv: always emit a position export in gs copy shadersRhys Perry2019-09-161-1/+1
| | | | | | Signed-off-by: Rhys Perry <[email protected]> Fixes: f8d0337299f ('radv: add multiple streams support for the GS copy shader') Reviewed-by: Samuel Pitoiset <[email protected]>
* radv: keep GS threads with excessive emissions which could write to memoryRhys Perry2019-09-163-4/+16
| | | | | Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]>
* drirc: include unreal engine version 0 to 23Lionel Landwerlin2019-09-161-1/+1
| | | | | | | | | This was meant to include up to version 23. Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: 0616b7ac90 ("vulkan: add vk_x11_strict_image_count option") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111522 Reviewed-by: Eric Engestrom <[email protected]>
* util/xmlconfig: fix regexp compile failure checkLionel Landwerlin2019-09-161-1/+1
| | | | | | | | This is embarrasing... Signed-off-by: Lionel Landwerlin <[email protected]> Fixes: 04dc6074cf ("driconfig: add a new engine name/version parameter") Reviewed-by: Eric Engestrom <[email protected]>
* gallium/gdi: use GALLIUM_FOO rather than HAVE_FOOErik Faye-Lund2019-09-162-10/+10
| | | | | | | | | This matches what other targets do, and makes it easier to port to meson. Signed-off-by: Erik Faye-Lund <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* scons: Make scons and meson agree about path to glapi generated headersDylan Baker2019-09-168-5/+8
| | | | | | | | Currently scons puts them in src/mapi/glapi, meosn puts them in src/mapi/glapi/gen. This results in some things being compilable only by one or the other, put them in the same places so that everyone is happy. Reviewed-by: Eric Engestrom <[email protected]>
* lima: add standalone disassembler with primitive MBS parserVasily Khoruzhick2019-09-162-0/+219
| | | | | | | | | It's useful for analyzing shader binaries produced by ARM mali offline compiler which outputs files in MBS format. MBS is mali binary shader, currently parser just extracts shader binary and ignores everything else. Reviewed-and-tested-by: Connor Abbott<[email protected]> Signed-off-by: Vasily Khoruzhick <[email protected]>
* mesa/gl: Sync with Khronos registryHeinrich Fink2019-09-162-153/+1375
| | | | | | | | | | | | | | | | | | Update GL headers and xml API from upstream Khronos registry (commit 3d0c3eb). Keep `BUILDING_MESA` quirk in glext.h. mesa/extensions: Expose EXT_EGL_sync instead of MESA_EGL_sync to reflect Khronos request of changing this extension's scope from MESA to EXT. EGL_EGL_sync is also the name of the extension that has been merged into the upstream Khronos GL registry. Remove MESA_EGL_sync spec txt from Mesa tree as it is now published as EXT by Khronos. v1: Remove MESA_EGL_sync spec and squash commits (Eric E) Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* nir/large_constants: pass after lowering copy_derefSergii Romantsov2019-09-162-32/+9
| | | | | | | | | | | v2: by J.Ekstrand suggestion moved lowering of large constants after lowering of copy_deref is done. CC: Jason Ekstrand <[email protected]> CC: Caio Marcelo de Oliveira Filho <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111450 Signed-off-by: Sergii Romantsov <[email protected]>
* radeonsi/nir: fix number of used samplersTimothy Arceri2019-09-161-1/+1
| | | | | | | | | | | | | | | Commit f3e978db incorrectly assumed the maximum number of samplers was equal to the max number of defined samplers e.g. where bindings skip slots. This fixes an assert in si_nir_load_sampler_desc() for an enemy territory quake wars shader. And fixes potential bugs with incorrect bounds limiting in the same code for production builds of mesa. Fixes: f3e978db ("radeonsi/nir: Remove uniform variable scanning") Reviewed-by: Connor Abbott <[email protected]>
* radv/gfx10: disable unsupported transform feedback features for NGGSamuel Pitoiset2019-09-161-3/+3
| | | | | | | Mostly multiple streams and queries which have to be fixed/implemented. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: implement NGG streamoutSamuel Pitoiset2019-09-161-7/+514
| | | | | | | | It's still disabled by default because transform feedback randomly hangs and it seems like it's related to GDS (cf. RadeonSI). Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: make sure to wait for idle before clearing GDSSamuel Pitoiset2019-09-161-0/+8
| | | | | | | | | | Otherwise the next streamout operation will overwrite GDS. This can be improved by tracking if there is a streamout operation in flight. Currently the driver unconditionally flushes but that doesn't matter much as NGG streamout is disabled by default. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: make GDS idle when leaving the IBSamuel Pitoiset2019-09-161-0/+7
| | | | | | | | NGG streamout uses GDS and we have to make sure that another process isn't going to overwrite GDS while our shaders are busy. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: enable NGG_WAVE_ID_EN for NGG streamoutSamuel Pitoiset2019-09-161-0/+2
| | | | | | | | Otherwise the wave IDs are probably 0 and it hangs. NGG_WAVE_ID_EN generates wave IDs for GDS OA. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: gather GS output for VS as NGGSamuel Pitoiset2019-09-161-0/+2
| | | | | | | For streamout we have to the number of streamout outputs. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: compute the correct buffer size for NGG streamoutSamuel Pitoiset2019-09-161-1/+10
| | | | | | | It's used to determined the max emit per buffer. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: fix unnecessary LDS overallocation for NGG GSSamuel Pitoiset2019-09-161-7/+1
| | | | | | | Ported from RadeonSI. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: adjust the LDS size for VS/TES NGG streamoutSamuel Pitoiset2019-09-161-8/+9
| | | | | | | It should account for the number of streamout outputs. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: unconditionally declare scratch space for NGG streamout without GSSamuel Pitoiset2019-09-161-0/+22
| | | | | | | Streamout outputs are stored in the ESGS ring. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: adjust the GS NGG scratch size for streamoutSamuel Pitoiset2019-09-162-3/+19
| | | | | | | It needs more space for multiple streams. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: allocate GDS/OA buffer objects for NGG streamoutSamuel Pitoiset2019-09-163-4/+70
| | | | | | | This allocates two BOs for GFX10 NGG streamout. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: implement NGG streamout begin/end functionsSamuel Pitoiset2019-09-161-6/+105
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/gfx10: add an option to switch from legacy to NGG streamoutSamuel Pitoiset2019-09-167-24/+43
| | | | | | | | | | This internal option is turned off by default because NGG streamout still hangs. It seems like it's related to GDS as RadeonSI. That option will be turned on once all issues are resolved. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* radv/winsys: add support for GS and OA domainsSamuel Pitoiset2019-09-162-1/+7
| | | | | | | For NGG streamout which uses GDS. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* iris: Fix fence leak in iris_fence_flushDanylo Piliaiev2019-09-161-0/+2
| | | | | | | | | | | Documentation for pipe_context::flush states: "NOTE: use screen->fence_reference() (or equivalent) to transfer new fence ref to **fence, to ensure that previous fence is unref'd" Hence we need to unref previous out_fence. Signed-off-by: Danylo Piliaiev <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* nir/large_constants: more careful data copyingSergii Romantsov2019-09-161-1/+1
| | | | | | | | | | | | | | | | | A filed of nir_variable.location may be equel to -1. That may cause copying to invalid address of list-node, making some internal fields corrupted. Patch fixes segfault during freeing context due to corrupted address of ralloc_header.destructor. v2: copy data if var is constant (Connor Abbott) CC: Caio Marcelo de Oliveira Filho <[email protected]> Fixes: b6d475356846 (nir/large_constants: De-duplicate constants) Signed-off-by: Sergii Romantsov <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111676 Reviewed-by: Connor Abbott <[email protected]>
* vulkan: add vk_x11_strict_image_count optionLionel Landwerlin2019-09-156-1/+28
| | | | | | | | | | | | | | | | | | This option strictly allocate the minImageCount given by the application at swapchain creation. This works around application that do not deal with the fact that the implementation allocates more images than the minimum specified. v2: Add values in default drirc (Bas) v3: specify engine name/version (Lionel) Signed-off-by: Lionel Landwerlin <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111522 Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Cc: 19.2 <[email protected]>
* driconfig: add a new engine name/version parameterLionel Landwerlin2019-09-1514-21/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Vulkan applications can register with the following structure : typedef struct VkApplicationInfo { VkStructureType sType; const void* pNext; const char* pApplicationName; uint32_t applicationVersion; const char* pEngineName; uint32_t engineVersion; uint32_t apiVersion; } VkApplicationInfo; This enables the Vulkan implementations to apply workarounds based off matching this description. Here we add a new parameter for matching the driconfig options with the following : <device driver="anv"> <application engine_name_match="MyOwnEngine.*" engine_versions="10:12,40:42"> <option name="blaaah" value="true" /> </application> </device> v2: switch engine name match to use regexps v3: Verify that the regexec returns REG_NOMATCH for match failure (Eric) v4: Add missing bit that went to the following commit (Eric) Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Cc: 19.2 <[email protected]>
* radv: store engine nameLionel Landwerlin2019-09-152-0/+16
| | | | | | | | | | | We'll use this later for a new driconfig matching parameter. v2: Avoid leak in device creation error case (Bas) Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Cc: 19.2 <[email protected]>
* gallium: util_set_vertex_buffers_mask(..): make use of u_bit_consecutive(..)Christian Gmeiner2019-09-141-3/+2
| | | | | | | Also move the clearing of the bits out of if/else. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* virgl: replace fprintf with _debug_printfLepton Wu2019-09-141-5/+5
| | | | | Signed-off-by: Lepton Wu <[email protected]> Reviewed-by: Gurchetan Singh <[email protected]>
* iris: Initialize ice->state.prim_mode to an invalid valueKenneth Graunke2019-09-131-0/+1
| | | | | | | | | | | | | | | | | It was calloc'd to 0 which is PIPE_PRIM_POINTS, which means that we fail to notice an initial primitive of points being new, and fail at updating the "primitive is points or lines" field. We do not need to reset this on device loss because we're tracking the last primitive mode sent to us on the CPU via draw_vbo, not the last primitive mode sent to the GPU. Fixes several tests: - dEQP-GLES3.functional.clipping.point.wide_point_clip - dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center - dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner Fixes: dcfca0af7c5 ("iris: Set XY Clipping correctly.")
* lima/ppir: Add undef handlingAndreas Baierl2019-09-134-4/+24
| | | | | | | | | | Add a ppir dummy node for nir_ssa_undef_instr, create a reg for it and mark it as undefined, so that regalloc can set it non-interfering to avoid register pressure. Signed-off-by: Andreas Baierl <[email protected]> Reviewed-by: Vasily Khozuzhick <[email protected]> Reviewed-by: Erico Nunes <[email protected]>
* lima/ppir: Rename ppir_op_dummy to ppir_op_undefAndreas Baierl2019-09-133-5/+5
| | | | | | Signed-off-by: Andreas Baierl <[email protected]> Reviewed-by: Vasily Khoruzhick <[email protected]> Reviewed-by: Erico Nunes <[email protected]>