aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* docs: update meson docs for windowsDylan Baker2019-10-182-0/+97
| | | | Reviewed-by: Adam Jackson <[email protected]>
* meson: Use cmake to find LLVM when building for windowsDylan Baker2019-10-181-2/+10
| | | | | | | | | We don't use cmake normally because it always results in static linking. This is very problematic for *nix OSes which expect shared linking by default, but for windows this isn't a problem as LLVM doesn't support shared linking on windows anyway. Reviewed-by: Adam Jackson <[email protected]>
* meson: Add support for wrapping llvmDylan Baker2019-10-182-6/+25
| | | | | | | | For building on Windows (when not using cygwin), users may want to use a binary wrap of LLVM, this provides a fallback to the LLVM dependency which may be used in this case Reviewed-by: Adam Jackson <[email protected]>
* meson/llvmpipe: Add dep_llvm to driver_swrastDylan Baker2019-10-181-1/+1
| | | | | | This fixes build errors in gl-gdi on windows when using llvmpipe Reviewed-by: Adam Jackson <[email protected]>
* Revert "egl: Add EGL_CONFIG_SELECT_GROUP_MESA ext."Hal Gentz2019-10-182-108/+0
| | | | This reverts commit 173bc9d6842efdec54ea3fd415a6946dcee7b02a.
* Revert "egl: Fixes transparency with EGL and X11."Hal Gentz2019-10-188-37/+18
| | | | This reverts commit 90a19074b4e1d4d8f8ababaade8170c05aeecffe.
* Revert "egl: Puts RGBA visuals in the second config selection group."Hal Gentz2019-10-181-9/+1
| | | | This reverts commit a800d16e4f1589e41e53edf8e8a771a33bb46a6a.
* Revert "egl: Configs w/o double buffering support have no `EGL_WINDOW_BIT`."Hal Gentz2019-10-1810-78/+7
| | | | This reverts commit 075a96aa926e6e89795f95a6a59693f44d9ac970.
* etnaviv: check NO_ASTC feature bitJonathan Marek2019-10-181-1/+2
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Lucas Stach <[email protected]>
* etnaviv: fix TS samplers on GC7000LJonathan Marek2019-10-181-1/+2
| | | | | Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Lucas Stach <[email protected]>
* etnaviv: fix linear_nearest / nearest_linear filters on GC7000LiteJonathan Marek2019-10-181-2/+4
| | | | | | | | MIN filter is only used when LOD MAX is at least 4 (I guess the 2 LSB don't actually exist). Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Lucas Stach <[email protected]>
* etnaviv: GC7000: flush TX descriptor and instruction cacheLucas Stach2019-10-181-0/+7
| | | | | | | | | The etnaviv kernel driver will only ever flush write caches. As both the TX descriptor and instruction cache are read caches they must be flushed from the user cmdstream at an appropriate time. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: add linear texture support on GC7000Lucas Stach2019-10-181-1/+3
| | | | | | | | It's just a matter of writing the addressing mode into the texture descriptor. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: GC7000: Texture descriptorsWladimir J. van der Laan2019-10-188-1/+440
| | | | | | | | | | | | | | | | | | Create a separate implementation file with texture-descriptor-based sampler views and sampler states. Initialize the one or the other based on the GPU. There is so little in common that this seemed more appropriate that keeping them as one type of state object would only be confusing. This commit is actually a combiation of the original commit by Wladimir, fixes and TS implementation from Jonathan and changed to use softpin by Lucas. Signed-off-by: Wladimir J. van der Laan <[email protected]> Signed-off-by: Jonathan Marek <[email protected]> Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Guido Günther <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: check for softpin availability on Halti5 devicesLucas Stach2019-10-181-0/+5
| | | | | | | | | | | | Halti5 uses texture descriptors to control the samplers, and thus needs to know the GPU virtual address for the texture buffers to fill into the descriptor buffer. Without softpin userspace has no control over the GPU VM and also no way to fix up the texture descriptor buffer, so there is no point in creating a screen on a Halti5 device without softpin being available. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: drm: add softpin interfaceLucas Stach2019-10-185-7/+63
| | | | | | | | | | If softpin is available on the kernel side, we transparently replace the relocs with self-managed GPU virtual addresses. This allows to skip some work at the kernel side, as it doesn't need to touch the command stream anymore before submitting it to the hardware. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: Rework lockingMarek Vasut2019-10-189-16/+28
| | | | | | | | Replace the per-screen locking of flushing with per-context one and add per-context lock around command stream buffer accesses, to prevent cross-context flushing from corrupting these command stream buffers. Signed-off-by: Marek Vasut <[email protected]>
* etnaviv: Command buffer reallocMarek Vasut2019-10-182-1/+33
| | | | | | | | Reallocate the command stream buffer in case it is too small. The older kernel versions are limited to 64 kiB buffer, so limit the size to avoid oversized buffers. Signed-off-by: Marek Vasut <[email protected]>
* etnaviv: Rework resource status trackingMarek Vasut2019-10-184-32/+93
| | | | | | | | | | Have each context track which resources it marked as pending read and pending write. Have each resource track in which context it is pending. This way, it is possible to identify when a resource is both pending read and pending write at the same time. Moreover, the status field can be correctly calculated and updated when necessary. Signed-off-by: Marek Vasut <[email protected]>
* etnaviv: rework the stream flush to always go through the context flushLucas Stach2019-10-184-68/+61
| | | | | | | | | This way we can ensure that the pipe driver tracking of pending resources stays in sync with the actual command buffer state, even if a space reservation triggers a forced flush. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: drm: remove unused etna_cmd_stream_finishLucas Stach2019-10-182-10/+0
| | | | | | | | | It's not used by anything and gets in the way for the refactoring of the flush handling. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: keep references to pending resourcesLucas Stach2019-10-182-11/+10
| | | | | | | | | | As long as a resource is pending in any context we must not destroy it, otherwise we'll hit a classical use-after-free with fireworks. To avoid this take a reference when the resource is first added to the pending set and put the reference when no longer pending. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
* etnaviv: Make contexts track resourcesMarek Vasut2019-10-185-15/+40
| | | | | | | | | | | | | Currently, the screen tracks all resources for all contexts, but this is not correct. Each context should track the resources it uses. This also allows a context to detect whether a resource is used by another context and to notify another context using a resource that the current context is done using the resource. Signed-off-by: Marek Vasut <[email protected]> Cc: Christian Gmeiner <[email protected]> Cc: Guido Günther <[email protected]> Cc: Lucas Stach <[email protected]>
* REVIEWERS: add VMware reviewersBrian Paul2019-10-181-0/+10
|
* radv: implement VK_KHR_shader_float_controlsSamuel Pitoiset2019-10-187-4/+51
| | | | | | | | | | | | | | | | This exposes what's required for DX and this is what we already configure. The driver flushes denorms for FP32 and preserves them for FP16/FP64. Note that we can't allow both preserving and flushing denorms because this won't work for merged shaders. This will require LLVM to update the float mode register to make it work. Only enabled on GFX8+ with the LLVM path because it's untested on previous chips and ACO doesn't support it. This extension is required for SPIRV 1.4. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* ac/llvm: force fneg/fabs to flush denorms to zero if requestedSamuel Pitoiset2019-10-181-0/+14
| | | | | | | | LLVM optimizes these instructions with XOR/AND and it loses the sign bit. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* ac/llvm: add AC_FLOAT_MODE_ROUND_TO_ZEROSamuel Pitoiset2019-10-184-0/+5
| | | | | | | | Because some instructions will be optimized by the backend compiler, the driver has to manually flush to zero to keep the result exact. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* ac/llvm: add ac_build_canonicalize() helperSamuel Pitoiset2019-10-183-6/+33
| | | | | Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* travis: test meson install as wellEric Engestrom2019-10-181-0/+1
| | | | Signed-off-by: Eric Engestrom <[email protected]>
* travis: don't (re)install pythonEric Engestrom2019-10-181-2/+2
| | | | | | | | The new Mac OS X images apparently already have python2 and python3, and `brew` considers asking to install something already installed as a fatal error... Signed-off-by: Eric Engestrom <[email protected]>
* gbm: Add GBM_MAX_PLANES definitionLepton Wu2019-10-181-3/+5
| | | | | | | This removed hard coded "4". Reviewed-by: Eric Engestrom <[email protected]> Signed-off-by: Lepton Wu <[email protected]>
* v3d: Explicitly expose OpenGL ES Shading Language 3.1Jose Maria Casanova Crespo2019-10-181-0/+3
| | | | | | | | This will expose GL_EXT_primitive_bounding_box and GL_OES_primitive_bounding_box after previous commits expose OpenGL ES 3.1 once Compute Shaders are available. Reviewed-by: Eric Anholt <[email protected]>
* v3d: request the kernel to flush caches when TMU is dirtyIago Toral Quiroga2019-10-186-24/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adapts the v3d driver to the new CL submit ioctl interface that allows the driver to request a flush of the caches after the render job has completed. This seems to eliminate the kernel write violation errors reported during CTS and Piglit excutions, fixing some CTS tests and GPU resets along the way. v2: - Adapt to changes in the kernel side. - Disable shader storage and shader images if the kernel doesn't implement cache flushing. Fixes CTS tests: KHR-GLES31.core.shader_image_size.basic-nonMS-fs-float KHR-GLES31.core.shader_image_size.basic-nonMS-fs-int KHR-GLES31.core.shader_image_size.basic-nonMS-fs-uint KHR-GLES31.core.shader_image_size.advanced-nonMS-fs-float KHR-GLES31.core.shader_image_size.advanced-nonMS-fs-int KHR-GLES31.core.shader_image_size.advanced-nonMS-fs-uint KHR-GLES31.core.shader_atomic_counters.advanced-usage-many-draw-calls2 KHR-GLES31.core.shader_atomic_counters.advanced-usage-draw-update-draw KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-int KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std140-matR KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std140-struct KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std430-matC-pad KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std430-vec Reviewed-by: Eric Anholt <[email protected]>
* v3d: Add Compute Shader supportEric Anholt2019-10-188-8/+278
| | | | | | Now that the UAPI has landed, add the pipe_context function for dispatching compute shaders. This is the last major feature for GLES 3.1, though it's not enabled quite yet.
* broadcom: document known hardware issues for L2T flush commandIago Toral Quiroga2019-10-181-0/+35
| | | | | Suggested-by: Eric Anholt <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* v3d: add new flag dirty TMU cache at v3d_compilerIago Toral Quiroga2019-10-186-0/+17
| | | | | | | | | | | | | | That we set for any TMU write on spills and general tmu. It is then used as part of v3d_emit_gl_shader_state later. v2: add a new flag instead at v3d_compiler instead of dirty the flag at v3dx if there is any spill (change suggested by Eric, added by Alejandro) v3: set this for anything that is not a load and do it also in v3d40_vir_emit_image_load_store (Eric) Reviewed-by: Eric Anholt <[email protected]>
* v3d: trivial update to obsolete commentIago Toral Quiroga2019-10-181-2/+2
| | | | Reviewed-by: Eric Anholt <[email protected]>
* radv: Fix single stage constant flush with merged shaders.Bas Nieuwenhuizen2019-10-181-5/+6
| | | | | | | | | e.g. a VERTEX only flush with tess on Vega should look at the TCS to see which bits are needed. CC: <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1953 Reviewed-by: Samuel Pitoiset <[email protected]>
* rbug: remove superfluous NULL checkLucas Stach2019-10-181-2/+1
| | | | | | | | The SCR_INIT macro used to install the rbug resource_changed method will only do so when the driver below rbug exposes this method, so the check will always evaluate to true. Signed-off-by: Lucas Stach <[email protected]>
* rbug: implement resource creation with modifierLucas Stach2019-10-181-0/+38
| | | | Signed-off-by: Lucas Stach <[email protected]>
* rbug: forward can_create_resource to pipe driverLucas Stach2019-10-181-0/+12
| | | | Signed-off-by: Lucas Stach <[email protected]>
* rbug: forward texture_barrier to pipe driverLucas Stach2019-10-181-0/+12
| | | | Signed-off-by: Lucas Stach <[email protected]>
* rbug: implement missing explicit sync related fence functionsLucas Stach2019-10-182-0/+38
| | | | Signed-off-by: Lucas Stach <[email protected]>
* rbug: move flush_resource initializationLucas Stach2019-10-181-1/+1
| | | | | | | | All the other context method initialzation follow the order of the pipe_context structure definition making it easy to find unimplemented methods in rbug. Move the flush_resource init to follow the same order. Signed-off-by: Lucas Stach <[email protected]>
* rbug: unwrap index buffer resourceLucas Stach2019-10-181-2/+7
| | | | | | | | | All resources passed to the drivers below rbug need to be unwrapped before being passed down. We missed to do this for the index buffer resource when this was made part of the draw_info structure. Fixes: 330d0607ed60 (gallium: remove pipe_index_buffer and set_index_buffer) Signed-off-by: Lucas Stach <[email protected]>
* rbug: fix transmitted texture sizesLucas Stach2019-10-181-2/+9
| | | | | | | | | | | | The rbug wire format defines the texture size parameters to be uint32_t sized and uses memcpy to move the function parameters to the message structure. This caused totally wrong transmitted texture sizes since the height and depth paramterds have been changed to uint16_t in the gallium API. Fix this by doing an explicit conversion to the correct representation before packing into the wire message. Fixes: e6428092f5e1 (gallium: decrease the size of pipe_resource - 64 -> 48 bytes) Signed-off-by: Lucas Stach <[email protected]>
* gallium/util: don't depend on implementation defined behavior in listen()Lucas Stach2019-10-181-1/+1
| | | | | | | | | | | | | | Using 0 as the backlog argument to listen() is exploiting implementation defined behavior and will lead to no connections being accepted on some libc implementations. Quote of the listen manpage: "A backlog argument of 0 may allow the socket to accept connections, in which case the length of the listen queue may be set to an implementation-defined minimum value." Fix this by using a more sensible backlog value. Signed-off-by: Lucas Stach <[email protected]>
* mesa/main: GL_GEOMETRY_SHADER_INVOCATIONS exists in GL_OES_geometry_shaderIago Toral Quiroga2019-10-181-1/+3
| | | | | | | | It seems that for desktop GL this was included with ARB_gpu_shader5, but for OpenGL ES this is already included with the base extension and there is a CTS test that checks this. Reviewed-by: Marek Olšák <[email protected]>
* mesa: implement glTextureStorageNDEXT functionsPierre-Eric Pelloux Prayer2019-10-181-38/+24
| | | | | | | | Implement the 3 functions using the texturestorage_error() helper. _mesa_lookup_or_create_texture is always called to make sure that 'texture' is initialized (even if the texturestorage_error() generates an error afterwards). Reviewed-by: Marek Olšák <[email protected]>
* mesa: add EXT_dsa NamedCopyBufferSubDataEXT functionPierre-Eric Pelloux-Prayer2019-10-185-2/+40
| | | | Reviewed-by: Marek Olšák <[email protected]>