summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* st/nine: Ignore multisample quality level if no msAxel Davy2019-03-041-0/+4
| | | | | | | | | | | | Apparently instead of returning error when passing a quality level different than 0 for D3DMULTISAMPLE_NONE, we should pass. Fixes: https://github.com/iXit/Mesa-3D/issues/340 Cc: [email protected] Signed-off-by: Axel Davy <[email protected]>
* st/nine: Ignore window size if errorAxel Davy2019-03-041-1/+8
| | | | | | | | | | | | | | | | | | | | Check GetWindowInfo and ignore the computed sizes if there is an error. Fixes a regression caused by earlier commit when using old wine gallium nine patches. Should also address a crash at window destruction. Related issues: https://github.com/iXit/Mesa-3D/issues/331 https://github.com/iXit/Mesa-3D/issues/332 Cc: [email protected] Fixes: 2318ca68bbe ("st/nine: Handle window resize when a presentation buffer is used") Signed-off-by: Axel Davy <[email protected]>
* st/wgl: init a variable to silence MinGW warningBrian Paul2019-03-041-1/+1
| | | | | | MinGW release build says 'value' may be used before being initialized. Reviewed-by: Neha Bhende <[email protected]>
* svga: silence array out of bounds warningBrian Paul2019-03-041-1/+1
| | | | | | | | MinGW release build complains about a possible out-of-bounds array access. Test i < 4 to silence it. Reviewed-by: Neha Bhende <[email protected]> Reviewed-by: Mathias Fröhlich <[email protected]>
* svga: init fill variable to avoid compiler warningBrian Paul2019-03-041-1/+1
| | | | | | | | MinGW release builds warns about use of a possbily uninitialized variable here. Reviewed-by: Neha Bhende <[email protected]> Reviewed-by: Mathias Fröhlich <[email protected]>
* panfrost: List primitive restart enable bitAlyssa Rosenzweig2019-03-041-0/+2
| | | | Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost/midgard: Preview for data hazardsAlyssa Rosenzweig2019-03-041-9/+16
| | | | | | | | If a selected unit causes a data hazard, the whole block gets cut short. So, we preview for data hazards _while_ selecting units. Signed-off-by: Alyssa Rosenzweig <[email protected]> Tested-by: Tomeu Vizoso <[email protected]
* panfrost/midgard: Promote smul to vmulAlyssa Rosenzweig2019-03-041-1/+1
| | | | | | | | | smul comes first in the pipeline, before vmul. Until we have a full instruction scheduler, it's better to have vmul prioritized to maximize bundle size. Signed-off-by: Alyssa Rosenzweig <[email protected]> Tested-by: Tomeu Vizoso <[email protected]
* panfrost: Flush with offscreen renderingAlyssa Rosenzweig2019-03-041-2/+2
| | | | | | | | This special-case was needlessly added and breaks purely offscreen rendering (when there is no scanout involved) Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Tomeu Vizoso <[email protected]
* panfrost/midgard: Don't force constant on VLUTAlyssa Rosenzweig2019-03-041-1/+0
| | | | | | | | | | Previously, we forced a #0 inline constant tacked on for the lut instructions to mirror the blob's behaviour, which caused some suboptimal codegen due to our constant inlining implementation. Instead, just don't force a constant at all. Signed-off-by: Alyssa Rosenzweig <[email protected]> Tested-by: Tomeu Vizoso <[email protected]
* panfrost: Cleanup cruft related to clearsAlyssa Rosenzweig2019-03-042-32/+3
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Tomeu Vizoso <[email protected]>
* panfrost: Decouple Gallium clear from FBD clearAlyssa Rosenzweig2019-03-042-74/+67
| | | | | | | | | | The operations of gallium->clear() and the hardware callbacks are fundamentally independent. This routine decouples them by routing shared information via panfrost_job, allowing the hardware half to be deferred to the fragment job generation. Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Tomeu Vizoso <[email protected]>
* panfrost: Import job data structures from v3dAlyssa Rosenzweig2019-03-045-5/+184
| | | | | | | | | At the moment, Panfrost state is ad hoc, which creates issues for FBOs. This commit imports the skeleton of the v3d_job structure as panfrost_job, in preparation for refactors to organize this state. Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Tomeu Vizoso <[email protected]>
* freedreno/ir3: add Sethi–Ullman numbering passRob Clark2019-03-031-2/+6
| | | | Signed-off-by: Rob Clark <[email protected]>
* v3d: Fix build of NEON code with Mesa's cflags not targeting NEON.Eric Anholt2019-03-011-3/+17
| | | | | | | | v3d may be built as part of a set of drivers in a system not requiring NEON, but we know V3D devices will be paired with CPUs with NEON so we should be able to use this asm. Fixes: 0c05198d6b5b ("v3d: Always enable the NEON utile load/store code.")
* Revert "swr/rast: Archrast codegen updates"Eric Engestrom2019-03-018-351/+314
| | | | | | | | | | | | | | | | | | | This reverts the following commits: 71a76a47ccb34c5c259781ed49b0013e86dfaa31 "swr/codegen: fix autotools build" 7763e664cefd1e394101b37fbc552b50f820f44a "meson/swr: replace hard-coded path with current_build_dir()" 773b3ceacaf6d32135348e07878b8514a4350b0e "swr/rast: Fix autotools and scons codegen" 16e10b8c304481e423e76311f70de5de9e7424b1 "swr/rast: Add general SWTag statistics" b45a15a39f7630d569fcf1296dac1415eb758249 "swr/rast: Add string handling to AR event framework" 8608a747aafe6aef42fba148bfcdbb3ca136e7de "swr/rast: Add initial SWTag proto definitions" 93cd9905c8fbb98985ae1a61c0eebdb225fd1325 "swr/rast: Cleanup and generalize gen_archrast" The last one in this list broke all the build systems that can build this (meson, autotools & scons). See MR !304 for more details: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/304 Signed-off-by: Eric Engestrom <[email protected]>
* freedreno/a6xx: Enable UBWC modifierFritz Koenig2019-03-014-1/+17
| | | | | Adding the supported_modifiers allows buffers to be created with UBWC
* freedreno: UBWC allocatorFritz Koenig2019-03-013-0/+36
| | | | | | | | | | | UBWC requires space for a metadata or flag buffer that contains compression data. Each 16x4 tile of image data corresponds to a byte of compression data. This buffer needs to be stored before (at a lower address) the image buffer in order to match up with what the display driver. This allows the display driver to directly scan-out at UBWC buffer.
* freedreno/a6xx: UBWC supportFritz Koenig2019-03-017-44/+160
| | | | | | Universal bandwidth compression(UBWC) reduces memory bandwidth by compressing buffers. This compression takes the form of a full sized image buffer as well as a smaller metadata buffer.
* freedreno: pass count to query_dmabuf_modifiersFritz Koenig2019-03-011-1/+1
| | | | | query_dmabuf_modifiers needs to know the max number of modifiers that the list will hold.
* etnaviv: fix compile warningsChristian Gmeiner2019-03-012-2/+0
| | | | | | | | | | | | | | | | | Fixes the following compile warnings: [591/629] Compiling C object 'src/gallium/drivers/etnaviv/df32d18@@etnaviv@sta/etnaviv_context.c.o'. ../../src/ac_mesa/src/gallium/drivers/etnaviv/etnaviv_context.c: In function 'etna_cmd_stream_reset_notify': ../../src/ac_mesa/src/gallium/drivers/etnaviv/etnaviv_context.c:334:22: warning: unused variable 'entry' [-Wunused-variable] struct set_entry *entry; ^~~~~ [604/629] Compiling C object 'src/gallium/drivers/etnaviv/df32d18@@etnaviv@sta/etnaviv_resource.c.o'. ../../src/ac_mesa/src/gallium/drivers/etnaviv/etnaviv_resource.c: In function 'etna_resource_used': ../../src/ac_mesa/src/gallium/drivers/etnaviv/etnaviv_resource.c:649:22: warning: unused variable 'entry' [-Wunused-variable] struct set_entry *entry; ^~~~~ Signed-off-by: Christian Gmeiner <[email protected]>
* etnaviv: fix resource usage tracking across different pipe_context'sChristian Gmeiner2019-03-017-29/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | A pipe_resource can be shared by all the pipe_context's hanging off the same pipe_screen. Changes from v2 -> v3: - add locking with mtx_*() to resource and screen (Marek) Changes from v3 -> v4: - drop rsc->lock, just use screen->lock for the entire serialization (Marek) - simplify etna_resource_used() flush condition, which also prevents potentially flushing resources twice (Marek) - don't remove resouces from screen->used_resources in etna_cmd_stream_reset_notify(), they may still be used in other contexts and may need flushing there later on (Marek) Changes from v4 -> v5: - Fix coding style issues reported by Guido Changes from v5 -> v6: - Add missing locking in etna_transfer_map(..) (Boris) Signed-off-by: Christian Gmeiner <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Boris Brezillon <[email protected]> Tested-by: Marek Vasut <[email protected]> Reviewed-by: Boris Brezillon <[email protected]> Tested-by: Boris Brezillon <[email protected]>
* etnaviv: enable ETC2 texture compression support for HALTI0 GPUsChristian Gmeiner2019-03-011-11/+1
| | | | | Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]>
* etnaviv: hook-up etc2 patchingChristian Gmeiner2019-03-013-0/+64
| | | | | | | | | | | | | | Changes v1 -> v2: - Avoid the GPU sampling from the resource that gets mutated by the the transfer map by setting DRM_ETNA_PREP_WRITE. Changes v2 -> v3: - make use of likely(..) - drop minor optimization regarding rsc->layout == ETNA_LAYOUT_LINEAR - better documentation why DRM_ETNA_PREP_WRITE is needed Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]>
* etnaviv: keep track of mapped bo addressChristian Gmeiner2019-03-012-9/+11
| | | | | | | | Saves us from calling etna_bo_map(..) and saves us from doing the same offset calcs for map() and unmap() operations. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Lucas Stach <[email protected]>
* etnaviv: implement ETC2 block patching for HALTI0Christian Gmeiner2019-03-014-0/+201
| | | | | | | | | | | | ETC2 is supported with HALTI0, however that implementation is buggy in hardware. The blob driver does per-block patching to work around this. We need to swap colors for t-mode etc2 blocks. Changes v2 -> v3: - Drop redundant format check Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Lucas Stach <[email protected]>
* freedreno: Fix a couple of warningsKristian H. Kristensen2019-02-281-1/+1
| | | | Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Don't zero SO buffer addressesKristian H. Kristensen2019-02-281-38/+0
| | | | | | Just disable SO in VPC_SO_BUF_CNTL. Less noise in dumps. Signed-off-by: Kristian H. Kristensen <[email protected]>
* freedreno/a6xx: Only output MRT control for used framebuffersKristian H. Kristensen2019-02-281-1/+1
| | | | | | | Not much of an optimization, but makes for less noise in the command buffer dumps. Signed-off-by: Kristian H. Kristensen <[email protected]>
* radeonsi/nir: move si_lower_nir() call into compiler threadTimothy Arceri2019-02-281-2/+3
| | | | | | | | This helps improve compile times. For example the shader-db dolphin shader shaders/dolphin/ubershaders/120.shader_test goes from ~1.69 -> ~1.57 seconds on my machine with this change. Reviewed-by: Marek Olšák <[email protected]>
* freedreno: catch failing fd_blit and fallback to software blitJonathan Marek2019-02-273-11/+15
| | | | | | Fixes cases where the fd_blit fails and never happens (ex: blit to etc1) Signed-off-by: Jonathan Marek <[email protected]>
* freedreno: use renderonly path for buffers allocated with modifiersJonathan Marek2019-02-271-1/+7
| | | | | | | | | Now that freedreno has create_with_modifiers(), this "hack" is needed to make some cases work. Copied from vc4. Fixes: 41ddf1d1 Signed-off-by: Jonathan Marek <[email protected]>
* freedreno: a2xx: fix mipmapping for NPOT texturesJonathan Marek2019-02-271-0/+6
| | | | | | Fixes: 3a273a4a Signed-off-by: Jonathan Marek <[email protected]>
* freedreno: a2xx: fix fast clear for some gmem configurationsJonathan Marek2019-02-271-3/+3
| | | | | | | | | In freedreno_gmem.c, gmem_align of 0x8000 is used. Alignment used here should be the same. Fixes: 912a9c8d Signed-off-by: Jonathan Marek <[email protected]>
* freedreno: a2xx: add use_hw_binning functionJonathan Marek2019-02-271-2/+24
| | | | | | Fixes: cb2322c7 Signed-off-by: Jonathan Marek <[email protected]>
* freedreno: a2xx: don't write 4th vertex in mem2gmemJonathan Marek2019-02-271-3/+1
| | | | | | | | There is only room for 3 vertices now (RECT has 3 vertices). Fixes: 6ef7700a Signed-off-by: Jonathan Marek <[email protected]>
* swr/codegen: fix autotools buildErik Faye-Lund2019-02-271-8/+8
| | | | | | | | | | | | | When the output directory was changed, the BUILT_SOURCES and build-rule target-path was no longer correct, leading to races to generate the sources and compiling them. Fix this by updating both sets of paths, so automake see what's going on here. Fixes: 773b3ceacaf ("swr/rast: Fix autotools and scons codegen") Signed-off-by: Erik Faye-Lund <[email protected]> Reviewed-by: Alok Hota <[email protected]>
* meson/swr: replace hard-coded path with current_build_dir()Eric Engestrom2019-02-271-1/+1
| | | | | | | Fixes: 93cd9905c8fbb98985ae "swr/rast: Cleanup and generalize gen_archrast" Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Alok Hota <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* virgl/vtest: deprecate protocol version 1Gurchetan Singh2019-02-274-43/+23
| | | | | | | | | | | | | | | | | This is a partial revert of 9d81cd ("virgl: Pass resource size and transfer offsets"). The adjustments made in the client code means there's various mismatches when transfering data. Let's fallback to protocol version 0 and deprecate protocol version 1. We can still use the protocol version 1 slots for a shared memory transfer mechanism later. Fixes: dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.*_renderbuffer Reviewed-By: Gert Wollny <[email protected]>
* iris: add libmesa_iris_gen8 library to the buildTapani Pälli2019-02-271-0/+21
| | | | | | | Patch fixes iris build on Android. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
* android: make libbacktrace optional on USE_LIBBACKTRACETapani Pälli2019-02-272-3/+9
| | | | | | | | | | | | Otherwise with VNDK enabled we fail linking: src/gallium/targets/dri/Android.mk: error: gallium_dri (native:vendor) should not link to libbacktrace.vendor (native:vndk_private) Option makes it possible to use libbacktrace only when VNDK is not enabled. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
* panfrost/midgard: Allow flt to run on most unitsAlyssa Rosenzweig2019-02-271-1/+1
| | | | Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Expose perf counters in environmentAlyssa Rosenzweig2019-02-273-13/+11
| | | | | | | Previously, we were guarded by an #ifdef, which is generally a bad form. This patch instead guards them behind an environmental variable. Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Identify 4-bit channel texture formatsAlyssa Rosenzweig2019-02-273-0/+6
| | | | Signed-off-by: Alyssa Rosenzweig <[email protected]>
* panfrost: Add RGB565, RGB5A1 texture formatsAlyssa Rosenzweig2019-02-272-0/+4
| | | | Signed-off-by: Alyssa Rosenzweig <[email protected]>
* iris: Enable ARB_shader_draw_parameters supportJose Maria Casanova Crespo2019-02-265-4/+212
| | | | | | | | | | | | | | | | | | Additional VERTEX_ELEMENT_STATE are used to store basevertex and baseinstance and drawid updating the DWordLength of the 3DSTATE_VERTEX_ELEMENTS command. This passes all piglit tests for spec.*draw_parameters.* tests and VK-GL-CTS KHR-GL45.shader_draw_parameters_tests.* tests. Now we only mark a dirty_update when parameters are changed or when we have an indirect draw. We enable PIPE_CAP_DRAW_PARAMETERS on Iris. There is no edge flag support in the Vertex Elements setup. Reviewed-by: Kenneth Graunke <[email protected]>
* clover: Fix indentation issuesPierre Moreau2019-02-262-34/+34
| | | | | Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* clover: Only use devices supporting IR_NATIVEPierre Moreau2019-02-261-1/+2
| | | | | | | | | | | Currently clover will advertise any device that advertises PIPE_CAP_COMPUTE, even if they do not support PIPE_SHADER_IR_NATIVE, which is the IR used internally by clover. This avoids clover advertising devices as available even though they actually are not supported. Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* clover: Move platform extensions definitions to clover/platform.cppPierre Moreau2019-02-263-2/+9
| | | | | Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Aaron Watry <[email protected]>
* clover: Move device extensions definitions to core/device.cppPierre Moreau2019-02-263-10/+16
| | | | | Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Aaron Watry <[email protected]>