summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-10mesa: android: disable vc4 usage of libexpatexpat_wipSumit Semwal
vc4 uses libexpat in a decoder component, while from O+ Android doesn't expect libexpat to be linked into any code. This patch disables vc4 usage of the xml portions, to allow building aosp/master. Change-Id: I9a322ecc14851d0fa6790ef7ab048517e9460864 Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
2019-05-10HACK: Provide dummy expat replacement for gen_decoderSumit Semwal
As part of TREBLE, libexpat linking is prohibited; this patch allows us to build mesa3d while enabling TREBLE. It is a HACK, in that it doesn't provide replacement functionality for gen_decoder, just empty dummies. Change-Id: I6de9092b1a7618cc769a6ea92b5128ea645a3adc Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
2019-05-10mesa: Android: enable altxmlconfig for O+Sumit Semwal
Android version O and later would like to use altxmlconfig instead of libexpat based parsing. We enable altxmlconfig instead of xmlconfig.c for Android O+. Change-Id: Iaa51b2a1e9c16a1fdf6f120104429b19dc68f9eb Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
2019-05-10mesa: utils: provide alternate default config mechanismSumit Semwal
Core mesa uses libexpat to parse default configuration information stored as xml in header files. This potentially allows userspaces to supply their own configuration information, without a need to rebuild. However, for userspaces that don't want or need to allow external configuration, libexpat adds an un-necessary dependency. This patch provides an alternate, static configuration for the current defaults parsed for mesa core. This is a simple lookup with the same current internal API as src/util/xmlconfig.c. Change-Id: I81cf3817c4a6856a4b156646cf585e0152f93e02 Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
2019-05-10UPSTREAM: freedreno: mark imported resources as validRob Clark
commit 05f5122d4a60acd3890185b098757e3c152c5444 upstream. If someone is importing a buffer, we can't really know the state of it's contents, so assume it is valid. Change-Id: I0af7259357a14b285eb31d937c2542ba32904ea7 Signed-off-by: Rob Clark <robdclark@chromium.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-05-10freedreno/ir3: Update Makefile.sourcesAmit Pundir
Change-Id: Ib9b9c02c9a881a06fd511b19bac3ffe3a3815f08 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-05-10Update precompile intermediate sourcesAmit Pundir
Change-Id: I571071a4e46ba9e66c613d87211ac71de4a8e677 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30android: freedreno: build libfreedreno_{drm,ir3} static libsAmit Pundir
Change-Id: Id30db2ce07132e6b9ef6074caab05356418a4f51 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30mesa-19.0.3: Add new precompile intermediate sourcesAmit Pundir
Change-Id: Ifc37083c6cc4afe91a89e11e685dfcde7912fc99 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30mesa-19.0.3: Update precompile intermediate sourcesAmit Pundir
Change-Id: Ie7f986539e822f7506f3ec01ceb97bfc3d8b0c3a Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30Precompile intermediate sourcesCasey Dahlin
Certain code in Mesa is generated by python scripts that want modules that aren't part of Android's standard build requirements. This patch introduces pre-generated versions of those files for our usage. Test: Build now completes without needing additional python modules on the host. Bug: 32336912 Change-Id: I3db6b86db0ebf7f2fba78a0b3aa34e169471fd1a Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30mesa-19.0.3: Update prebuilt xmlpool/options.hAmit Pundir
Change-Id: Ib33d07141a3b3e68b2983810d19b17cf4ca8e99a Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30Add xmlpool/options.h back in the list of intermediate prebuilt source filesAmit Pundir
commit 092675ffa035 ("mesa3d: dragonboards: add format_srgb.c to prebuilts") overrides the list of locally generated source files(LOCAL_GENERATED_SOURCES) and we run into following build error: external/mesa3d/src/util/xmlpool.h:103:10: fatal error: 'xmlpool/options.h' file not found Currently in src/util/Android.mk, LOCAL_GENERATED_SOURCES list is populated as --> LOCAL_GENERATED_SOURCES := $(UTIL_GENERATED_SOURCES) LOCAL_GENERATED_SOURCES += $(MESA_DRI_OPTIONS_H) LOCAL_GENERATED_SOURCES := $(MESA_FORMAT_SRGB_C) The last assignment ":=" effectively overrides the existing LOCAL_GENERATED_SOURCES list including MESA_DRI_OPTIONS_H, hence causing xmlpool/options.h file not found build error. We fix the build by populating the LOCAL_GENERATED_SOURCES as: LOCAL_GENERATED_SOURCES := $(UTIL_GENERATED_SOURCES) LOCAL_GENERATED_SOURCES := $(MESA_DRI_OPTIONS_H) LOCAL_GENERATED_SOURCES += $(MESA_FORMAT_SRGB_C) As for UTIL_GENERATED_SOURCES, since AOSP master build system has started to police the use of non-hermetic tools from the system PATH, see commit 5e0738226596 ("Add prebuilt-intermediates for xmlpool) for reference, it is highly unlikely that we are going to use UTIL_GENERATED_SOURCES ever agin. So it is safe to assume and keep overriding the list of those util generated source files, at least for now. Change-Id: I173037f9303c849533037ac0abd09faf9544ce80 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30mesa3d: dragonboards: add format_srgb.c to prebuiltsSumit Semwal
While building Android for dragonboards, the build fails since it can't find the generated file format_srgb.c. To work around this problem, introduce prebuilt-intermediates for format_srgb.c from the current source tree. Change-Id: I4c96e040f6b7c633ccf7f3b34c742a7fb6ee6592 Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30Add prebuilt-intermediates for xmlpoolAlistair Strachan
The AOSP master build system has started to police the use of non-hermetic tools from the system PATH. The Mesa project was using xgettext and other tools which are not part of the standard Android host build tools, and are therefore not allowed. This ban is now being enforced. To work around this problem, introduce prebuilt-intermediates for xmlpool based on the current source tree. Bug: 116125577 Change-Id: Ica53192b4c5495550ce5d6b49510b5984cedd4be Signed-off-by: Alistair Strachan <astrachan@google.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30Remove unnecessary dependency tracking rulesAlistair Strachan
The current AOSP master build system breaks building mesa due to the following error: external/mesa3d/src/compiler/Android.glsl.gen.mk:94: error: writing to readonly directory: "external/mesa3d/src/compiler/glsl/ir.h" This error is bogus -- nothing "writes" to ir.h -- but the rule is unnecessary because the generated header that is a dependency of the non-generated header should be added to LOCAL_GENERATED_SOURCES and this will track if the dependency needs to be regenerated. (This change fixes a similar problem affecting nir.h too.) Bug: 116125577 Change-Id: I79c8292bdba7ce384ae4f2d44e5c6d69c60f9538 Signed-off-by: Alistair Strachan <astrachan@google.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2019-04-30anv: enable descriptor indexing capabilitiesJuan A. Suarez Romero
This enables the remaining capabilities in SPV_EXT_descriptor_indexing. Fixes: 6e230d7607f "anv: Implement VK_EXT_descriptor_indexing" Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-04-30radv: enable descriptor indexing capabilitiesJuan A. Suarez Romero
This enables the remaining capabilities in SPV_EXT_descriptor_indexing. Fixes: 0e10790558b "radv: Enable VK_EXT_descriptor_indexing." Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-04-30spirv: add missing SPV_EXT_descriptor_indexing capabilitiesJuan A. Suarez Romero
Add ShaderNonUniformEXT, UniformBufferArrayNonUniformIndexingEXT, SampledImageArrayNonUniformIndexingEXT, StorageBufferArrayNonUniformIndexingEXT, StorageImageArrayNonUniformIndexingEXT, InputAttachmentArrayNonUniformIndexingEXT, UniformTexelBufferArrayNonUniformIndexingEXT and StorageTexelBufferArrayNonUniformIndexingEXT capabilities. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-04-29spirv: Properly handle SpvOpAtomicCompareExchangeWeakCaio Marcelo de Oliveira Filho
The code was handling the Weak variant in some cases, but missing others, e.g. the get_deref_nir_atomic_op. Add all the missing cases with the same behavior of the non-Weak SpvOpAtomicCompareExchange. Note that the Weak variant is basically an alias, as SPIR-V 1.3, Revision 7 says "OpAtomicCompareExchangeWeak Deprecated (use OpAtomicCompareExchange). Has the same semantics as OpAtomicCompareExchange." Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2019-04-30panfrost/ci: Initial commitTomeu Vizoso
These files implement running almost all of deqp-gles2 on Chomebooks of the rk3399-gru-kevin type in Collabora's LAVA lab. The approach follows what is currently being used for virglrenderer, but scheduling the actual test jobs via LAVA. We start by building a container in Docker that contains a suitable rootfs and kernel for the DUT, deqp and all dependencies for building Mesa itself. The Mesa is built and the rootfs, deqp and Mesa are combined in a cpio ramdisk. A LAVA job is generated, submitted to LAVA and the results are processed by simply comparing them to the expectations that are stored in git. Any code that changes the expectations (hopefully tests are fixed) needs to also update the expectations file. The next step is adding support for other devices, possibly in other LAVA labs. In order to use this, the repository has to be configured to run the gitlab-ci.yaml file from the panfrost/ci dir, and a LAVA token needs to be setup. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2019-04-29iris: Do not advertise multisampled image load/store.Rafael Antognolli
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2019-04-29freedreno/a6xx: pre-bake UBWC flags in texture-viewRob Clark
Small cleanup. No need to defer this to emit time. Signed-off-by: Rob Clark <robdclark@chromium.org>
2019-04-29freedreno/a6xx: small texture emit cleanupRob Clark
Prep work for fb_read (blend_equation_advanced) Switch to using 'enum pipe_shader_type' everywhere, and (optional, in non-cache / slowpath case) pass ctx instead of image/ssbo state. In the fb_read case we also need to access the framebuffer state, so having the ctx simplifies things. Signed-off-by: Rob Clark <robdclark@chromium.org>
2019-04-29freedreno/ir3: switch fragcoord to sysvalRob Clark
Because who are we kidding... it is a sysval. Signed-off-by: Rob Clark <robdclark@chromium.org>
2019-04-29i965: Re-enable fast color clears for GEN11.Plamena Manolova
This patch re-enables fast color clears for GEN11. It also ensures that we use linear color formats for sRGB surfaces during fast clears. Signed-off-by: Plamena Manolova <plamena.n.manolova@gmail.com> Reviewed-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
2019-04-29intel/blorp: Make blorp update the clear color in gen11.Rafael Antognolli
Hardware docs say that Gen11 requires the use of two MI_ATOMICs of size QWORD when updating the clear color. The second MI_ATOMIC also needs CS Stall and Return Data Control set. v2: Remove include of srgb header (Lionel) Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2019-04-29intel/genxml: Update MI_ATOMIC genxml definition.Rafael Antognolli
Change some of the single bit fields to booleans, and add an enum with the definition of the ATOMIC_OPCODE. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2019-04-29intel/genxml: Support base-16 in value & start fields in gen_sort_tags.pyJordan Justen
With python's int(), if the optional second parameter is 0, then python will support the 0x prefix for hex numbers. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2019-04-29isl: Set ClearColorConversionEnable.Plamena Manolova
The ClearColorConversionEnable bit needs to be set for GEN11 when inderect clear colors are used. Signed-off-by: Plamena Manolova <plamena.n.manolova@gmail.com> Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
2019-04-29delete autotools input filesEric Engestrom
Leftovers from when autotools was deleted. Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-04-29delete autotools .gitignore filesEric Engestrom
One special case, `src/util/xmlpool/.gitignore` is not entirely deleted, as `xmlpool.pot` still gets generated (eg. by `ninja xmlpool-pot`). Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-04-29iris: Only enable GL_AMD_depth_clamp_separate on Gen9+Kenneth Graunke
The hardware feature is new as of Gen9+. I accidentally enabled it on Gen8.
2019-04-29iris: Set XY Clipping correctly.Kenneth Graunke
I was setting it based off a pipe_rasterizer_state field that appears to be entirely dead outside of the draw module respecting it. I should be setting it when the primitive type reaching the SF is neither points nor lines. This is, unfortunately, rather dirty, as we have to look at the rasterizer state, the geometry shader state, the tessellation evaluation shader state, and the primitive type...
2019-04-29ac,ac/nir: use a better sync scope for shared atomicsRhys Perry
https://reviews.llvm.org/rL356946 (present in LLVM 9 and later) changed the meaning of the "system" sync scope, making it no longer restricted to the memory operation's address space. So a single address space sync scope is needed for shared atomic operations (such as "system-one-as" or "workgroup-one-as") otherwise buffer_wbinvl1 and s_waitcnt instructions can be created at each shared atomic operation. This mostly reimplements LLVMBuildAtomicRMW and LLVMBuildAtomicCmpXchg to allow for more sync scopes and uses the new functions in ac->nir with the "workgroup-one-as" or "workgroup" sync scopes. F1 2017 (4K, Ultra High settings, TAA), avg FPS : 59 -> 59.67 (+1.14%) Strange Brigade (4K, ~highest settings), avg FPS : 51.5 -> 51.6 (+0.19%) RotTR/mountain (4K, VeryHigh settings, FXAA), avg FPS : 57.2 -> 57.2 (+0.0%) RotTR/tomb (4K, VeryHigh settings, FXAA), avg FPS : 42.5 -> 43.0 (+1.17%) RotTR/valley (4K, VeryHigh settings, FXAA), avg FPS : 40.7 -> 41.6 (+2.21%) Warhammer II/fallen, avg FPS : 31.63 -> 31.83 (+0.63%) Warhammer II/skaven, avg FPS : 37.77 -> 38.07 (+0.79%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-04-29glx: Fix synthetic error generation in __glXSendErrorHal Gentz
To quote Uli Schlachter, who understands this stuff more than I do: > The function __glXSendError() in mesa's src/glx/glx_error.c invents an X11 > protocol error out of thin air. For the sequence number it uses dpy->request. > This is the sequence number of the last request that was sent. _XError() will > then update dpy->last_request_read based on the sequence number of the error > that just "came in". > > If now another something comes in with a sequence number less than > dpy->last_request_read, since sequence numbers are monotonically increasing, > widen() will incorrectly add 1<<32 to the sequence number and things might go > downhill afterwards. `__glXSendErrorForXcb` was also patched, as that's the function that `glXCreateContextAttribsARB` actually uses. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99781 Cc: mesa-stable@lists.freedesktop.org Fixes: ad503c41 'apple: Initial import of libGL for OSX from AppleSGLX svn repository' Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Hal Gentz <zegentzy@protonmail.com>
2019-04-29Revert "anv: limit URB reconfigurations when using blorp"Lionel Landwerlin
In commit 0d46e404 ("anv: limit URB reconfigurations when using blorp") we tried to limit the number of URB reconfiguration by checking if the last allocation is large enough to fit the blorp dispatch. We used the last bound pipeline to compare the allocation. The problem with this is that the pipeline is bound but its commands might not have been emitted into the command buffer yet. Let's just revert commit 0d46e404677264bfb12ada15290e39c10a5eb455 since it didn't seem to yield any performance improvement. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 0d46e404 ("anv: limit URB reconfigurations when using blorp") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110535 Acked-by: Jason Ekstrand <jason@jlekstrand.net>
2019-04-29mesa/st: remove always-false stateErik Faye-Lund
This code is essentially dead now. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-04-29mesa/st: accept NULL and empty buffer objectsErik Faye-Lund
It's prefectly legal and well-defined to render using a non-existing or empty buffer object. The data coming out of the buffer object isn't well defined unless we have the robustness flag set on the context, but that's a different matter, and up to the shader hardware; it's the same as out-of-bounds reads. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-04-29swr: support NULL-resourcesErik Faye-Lund
It's legal for a buffer-object to have a NULL-resource, but let's just skip over it, as there's nothing to do. This patch switches the order of the conditionals in swr_update_derived, so the logic becomes a bit more straight forward: if (is_user_buffer) ... else if (resource) ... else ... ...instead of this: if (!is_user_buffer) if (resource) ... else ... else ... Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Alok Hota <alok.hota@intel.com>
2019-04-29nouveau: support NULL-resourcesErik Faye-Lund
It's legal for a buffer-object to have a NULL-resource, but let's just skip over it, as there's nothing to do. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Acked-by: Karol Herbst <kherbst@redhat.com>
2019-04-29i915: support NULL-resourcesErik Faye-Lund
It's legal for a buffer-object to have a NULL-resource, but let's just skip over it, as there's nothing to do. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
2019-04-29gallium/u_vbuf: support NULL-resourcesErik Faye-Lund
It's legal for a buffer-object to have a NULL-resource, but let's just skip over it, as there's nothing to do. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-04-29mesa/st: remove impossible error-checkErik Faye-Lund
st_setup_current never sets this flag, and it's already checked against right before. So let's remove this pointless check. Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2019-04-29glsl/linker: check for xfb_offset aliasingAndres Gomez
From page 76 (page 80 of the PDF) of the GLSL 4.60 v.5 spec: " No aliasing in output buffers is allowed: It is a compile-time or link-time error to specify variables with overlapping transform feedback offsets." Currently, this is expected to fail, but it succeeds: " ... layout (xfb_offset = 0) out vec2 a; layout (xfb_offset = 0) out vec4 b; ... " Fixes the following piglit test: tests/spec/arb_enhanced_layouts/compiler/transform-feedback-layout-qualifiers/xfb_offset/invalid-overlap.vert Fixes the following test: KHR-GL44.enhanced_layouts.xfb_output_overlapping v2: - Use a data structure to track the used components instead of a nested loop (Ilia). v3: - Take the BITSET_WORD array out from the gl_transform_feedback_buffer struct and make it local to the validation process (Timothy). - Do not use a nested scope for the validation (Timothy). v4: - Add reference to the fixed piglit test in the commit log. - Add reference to the fixed VK-GL-CTS test in the commit log (Tapani). - Empty initialize the BITSET_WORD pointers array (Tapani). Cc: Timothy Arceri <tarceri@itsqueeze.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Andres Gomez <agomez@igalia.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
2019-04-29lima/ppir: fix pointer referenced after a freePatrick Lerda
Issue detected by valgrind. Fixes: 92d7ca4b1cd ("gallium: add lima driver") Signed-off-by: Patrick Lerda <patrick9876@free.fr> Reviewed-by: Qiang Yu <yuq825@gmail.com>
2019-04-29radv: consider MESA_VK_VERSION_OVERRIDE when setting the api versionEleni Maria Stea
Before setting the physical device API version, we should check if the MESA_VK_VERSION_OVERRIDE environment variable is set and take it into account. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2019-04-28intel/fs: Don't emit empty ELSE blocks.Kenneth Graunke
While we can clean this up later, it's trivial to not generate the stupid code in the first place, which saves some optimization work. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2019-04-28nir: Add a new nir_cf_list_is_empty_block() helper.Kenneth Graunke
Helper and name suggested by Eric Anholt. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2019-04-28glsl/list: Add an exec_list_is_singular() helper.Kenneth Graunke
Similar to list_is_singular() in util/list.h. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Matt Turner <mattst88@gmail.com>