summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
Commit message (Collapse)AuthorAgeFilesLines
* st/nine: enable csmt per default on irisAndre Heider2019-03-251-3/+5
| | | | | | | | iris is thread safe, enable csmt for a ~5% performace boost. Signed-off-by: Andre Heider <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Axel Davy <[email protected]>
* omx: add a compute path in enc_LoadImage_commonMarek Olšák2019-03-154-37/+196
| | | | Acked-by: Leo Liu <[email protected]>
* omx: clean up enc_LoadImage_commonMarek Olšák2019-03-151-16/+37
| | | | | | | - add *pipe - add documentation Acked-by: Leo Liu <[email protected]>
* st/dri: allow direct UYVY importChristian Gmeiner2019-03-111-0/+2
| | | | | | | Push this format to the pipe driver unchanged. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* st/nine: Change a few advertised capsAxel Davy2019-03-091-3/+3
| | | | | | | | | | | | | | | | | | | Most hw on the native platform advertise these caps this way. D3DCAPS_READ_SCANLINE: We don't really have hardware support for that, but many games don't even check the flag, and expect GetRasterStatus to work, which is why we emulated it with a timer (like wine). So we may as well advertise the cap. D3DCURSORCAPS_LOWRES: I don't know what is the status of this on X11, but I don't know of any dx9 game running at height < 400 either. D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE: The cap should correspond to what the current generation of hw is doing. Signed-off-by: Axel Davy <[email protected]> Reviewed-by: Patrick Rudolph <[email protected]>
* st/nine: Do not advertise CANMANAGERESOURCEAxel Davy2019-03-091-1/+1
| | | | | | | It doesn't seem the main vendors advertise it. Signed-off-by: Axel Davy <[email protected]> Reviewed-by: Patrick Rudolph <[email protected]>
* st/nine: Do not advertise support for D15S1 and D24X4S4Axel Davy2019-03-091-2/+2
| | | | | | | | | | | The former is supported on Matrox cards but no other hw. The latter isn't supported anywhere. It is fine to not advertise them as supported, and it could prevent apps to trigger weird rendering paths. Signed-off-by: Axel Davy <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* st/nine: Disable depth write when nothing gets updatedAxel Davy2019-03-091-1/+4
| | | | | | | | | | | I do not see any perf impact on radeonsi, but it seems iris needs this. It seems something sensible to do. Signed-off-by: Axel Davy <[email protected]> Reviewed-by: Timur Kristóf <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Tested-by: Andre Heider <[email protected]>
* st/dri: Set the PIPE_BIND_SHARED flag on create_image_with_modifiers.Eric Anholt2019-03-081-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | With createImage(), the caller was expected to set a SHARED flag if they needed the ability to get a GEM handle. DRI3, wayland, and gbm all set it, EGL_MESA_drm_image passes it through, and surfaceless doesn't need it because there's no way to request a handle. With the new createImageWithModifiers() DRI method to replace it, the expectation is that you'll always be able to share the buffer, so the flag is unnecessary in its arguments. However, we do need to tell gallium about this expectation. Without this, kmscube's modifiers path using gbm_bo_create_with_modifiers(&modifier, 1) instead of gbm_bo_create(SCANOUT | SHARED) will call the driver's resource_create() function wtih PIPE_BIND_SHARED unset, so the driver (particularly renderonly drivers) may allocate in such a way that it can't return an answer from gbm_bo_get_handle(). I used to have a hack in v3d using count==1 && modifier==LINEAR to indicate that you wanted SHARED anyway, but that was dropped recently. Fixes: 59527a36e975 ("v3d: Restructure RO allocations using resource_from_handle.") Reviewed-by: Kristian H. Kristensen <[email protected]>
* 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]>
* 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]>
* clover: Validate program and library linking optionsPierre Moreau2019-02-261-0/+35
| | | | | | | | Program linking options are only valid if the library was created with the `-enable-link-options` option, which itself is only valid when creating a library, and only when creating an executable. Reviewed-by: Francisco Jerez <[email protected]>
* clover: Disallow creating libraries from other librariesPierre Moreau2019-02-261-3/+18
| | | | | | | | | If creating a library, do not allow non-compiled object in it, as executables are not allowed, and libraries would make it really hard to enforce the "-enable-link-options" flag. Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Aaron Watry <[email protected]>
* clover/api: Fail if trying to build a non-executable binaryPierre Moreau2019-02-261-0/+7
| | | | | | | | | | | From the OpenCL 1.2 Specification, Section 5.6.2 (about clBuildProgram): > If program is created with clCreateProgramWithBinary, then the > program binary must be an executable binary (not a compiled binary or > library). Reviewed-by: Aaron Watry <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* clover/api: Rework the validation of devices for buildingPierre Moreau2019-02-262-10/+11
| | | | Reviewed-by: Francisco Jerez <[email protected]>
* clover: Add an helper for checking if an IR is supportedPierre Moreau2019-02-262-0/+7
| | | | | | Reviewed-by: Aaron Watry <[email protected]> Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* clover: Remove the TGSI backend as unusedPierre Moreau2019-02-267-196/+9
| | | | | Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* clover: Avoid warnings from new OpenCL headersPierre Moreau2019-02-264-0/+10
| | | | | | | | * Avoid warnings from references to deprecated CL 1.0, 1.2, 2.0 and 2.1 APIs. * Avoid warnings from not defining CL_TARGET_OPENCL_VERSION. Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* clover: update ICD table to support everything up to 2.2Karol Herbst2019-02-262-1/+218
| | | | | | Signed-off-by: Karol Herbst <[email protected]> Acked-by: Francisco Jerez <[email protected]> Reviewed-by: Pierre Moreau <[email protected]>
* include/CL: Update to the latest OpenCL 2.2 headersPierre Moreau2019-02-261-0/+5
| | | | | Acked-by: Francisco Jerez <[email protected]> Reviewed-by: Karol Herbst <[email protected]>
* st/dri: drop duplicate #defineEric Engestrom2019-02-141-4/+0
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* drm-uapi: use local files, not system libdrmEric Engestrom2019-02-142-1/+3
| | | | | | | | | There was an issue recently caused by the system header being included by mistake, so let's just get rid of this include path and always explicitly #include "drm-uapi/FOO.h" Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* st/va/vp9: set max reference as default of VP9 reference numberLeo Liu2019-02-111-1/+6
| | | | | | | | If there is no information about number of render targets Signed-off-by: Leo Liu <[email protected]> Reviewed-by: Boyuan Zhang <[email protected]> Cc: 19.0 <[email protected]>
* st/va: fix the incorrect max profiles reportLeo Liu2019-02-111-1/+1
| | | | | | | | | | | Add "PIPE_VIDEO_PROFILE_MAX" to enum, so it will make sure here will be correct when adding more profiles in the future. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109107 Signed-off-by: Leo Liu <[email protected]> Reviewed-by: Boyuan Zhang <[email protected]> Cc: 19.0 <[email protected]>
* st/va:Add support for indirect manner by returning ↵Guttula, Suresh2019-02-111-2/+5
| | | | | | | | | | | | | | | | | | VA_STATUS_ERROR_OPERATION_FAILED Based on VA Spec,DeriveImage() returns VA_STATUS_ERROR_OPERATION_FAILED if driver dont have support for internal surface formats.Currently vaDeriveImage() failed for non-contiguous planes and operation failed error string is required to support indirect manner i.e. vaCreateImage()+vaPutImage() incase vaDeriveImage() failed with VA_STATUS_ERROR_OPERATION_FAILED. This patch will notify to the client as operation failed with proper error sting,so that client will fallback to vaCreateImage()+vaPutImage(). v2: updated commit message based on VA spec. Signed-off-by: suresh guttula <[email protected]> Reviewed-by: Leo Liu <[email protected]>
* xvmc: fix string comparisonEric Engestrom2019-02-061-3/+3
| | | | | | Fixes: 6fca18696d0e6a243f6f "g3dvl: Update XvMC unit tests." Cc: Younes Manton <[email protected]> Signed-off-by: Eric Engestrom <[email protected]>
* xvmc: fix string comparisonEric Engestrom2019-02-061-10/+10
| | | | | | | Fixes: c7b65dcaffeb9d0760c8 "xvmc: Define some Xv attribs to allow users to specify color standard and procamp" Cc: Christian König <[email protected]> Signed-off-by: Eric Engestrom <[email protected]>
* st/dri: invalidate_resource depth/stencil before flush_resourceJonathan Marek2019-01-291-7/+7
| | | | | | | | | | | | This allows freedreno to be aware of the depth invalidate when flushing batches on flush_resource. AFAIK, the only other driver which might care about this change is vc4, where I think it should help by allowing the depth invalidate to work with GALLIUM_HUD. Signed-off-by: Jonathan Marek <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* st/nine: Enable debug info if NDEBUG is not setAxel Davy2019-01-2611-26/+26
| | | | | | | | | | We want to have debug info as well if using meson's debugoptimized when ndebug is off. v2: use u_debug functions that do something even if DEBUG is not set. Signed-off-by: Axel Davy <[email protected]>
* st/nine: Immediately upload user provided texturesAxel Davy2019-01-261-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | Fixes regression caused by 42d672fa6a766363e5703f119607f7c7975918aa st/nine: Bind src not dst in nine_context_box_upload Before that patch, for user provided textures, when the texture was destroyed, the safety check for pending uploads, which according to the code "Following condition cannot happen currently", was flushing the queue and thus triggering the upload. After the patch, the texture destruction was delayed after the upload. However the user frees the texture buffer, as it thinks the texture released. Instead of reverting the faulty patch, this patch instead flushes the csmt queue right away after queuing the upload for this type of textures. This is more future-proof, as we may want to bind the surface for other reasons in the future. Signed-off-by: Axel Davy <[email protected]> Cc: 18.3 <[email protected]>
* meson/vdpau: add missing soversionEric Engestrom2019-01-251-1/+8
| | | | | | | | | | | | | | | This mirrors what autotools does in src/gallium/state_trackers/vdpau/Makefile.am and src/gallium/targets/vdpau/Makefile.am: VDPAU_MAJOR = 1 VDPAU_MINOR = 0 libvdpau_gallium_la_LDFLAGS = -version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) Reported-by: Igor Gnatenko <[email protected]> Fixes: 68076b87474e7959c161 "meson: build gallium vdpau state tracker" Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* gallium: use put image shm2 path (v2)Dave Airlie2019-01-251-5/+12
| | | | | | | | | | | This fixes the drisw paths to use the new shm2 interface, so that we don't trigger the X server overflow checks when the x offset is non-zero. This just hides the versioning in drisw, and either passes the src_x or adds the offset fixup for the fallback path. Cc: <[email protected]> Reviewed-by: Adam Jackson <[email protected]>
* st/dri: fix dri2_format_table for argb1555 and rgb565Marek Olšák2019-01-141-1/+1
| | | | | | | | | The bug caused that rgb565 framebuffers used argb1555. Fixes: 433ca3127a3b94bfe9a513e7c7ce594e09e1359f Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Rob Clark <[email protected]>
* st/va: Return correct status from vlVaQuerySurfaceStatusIndrajit Das2019-01-091-0/+31
| | | | | | | | | This ensures that during encoding, applications can get the correct status of the surface before submitting more operations on the same. Reviewed-by: Leo Liu <[email protected]> Signed-off-by: Indrajit Das <[email protected]>
* clover/meson: Ignore 'svn' suffix when computing CLANG_RESOURCE_DIRPierre Moreau2019-01-081-1/+1
| | | | | | | | | | | | | | | The version exported by LLVM in its CMake configuration files can include the “svn” suffix when building a development version (for example “8.0.0svn”). However the exported clang headers are still found under “lib/clang/8.0.0/”, without the “svn” suffix. Meson takes care of removing the “svn” suffix from the version when using the dependency’s `version()` method. This processing is already performed in “configure.ac” when using autotools. Signed-off-by: Pierre Moreau <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: Override C++ standard to gnu++11 when building with altivec on ppc64Dylan Baker2018-12-281-0/+3
| | | | | | | | | | Otherwise there will be symbol collisions for the vector name. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108943 Distro Bug: https://bugs.gentoo.org/673622 Fixes: 42ea0631f108d82554339530d6c88aa1b448af1e ("meson: build clover") Acked-by: Matt Turner <[email protected]>
* st/nine: Increase the limit of cached ff shadersAxel Davy2018-12-231-2/+2
| | | | | | | | 100 is too small for some games, which triggers recompilations every frame. Increase to 1024. Signed-off-by: Axel Davy <[email protected]> Tested-by: Dieter Nützel <[email protected]>
* st/nine: Add src reference to nine_context_range_uploadAxel Davy2018-12-233-1/+8
| | | | | | | | | | Just like nine_context_box_upload, nine_context_range_upload should reference the src, which holds the ram source buffer. Fixes: https://github.com/iXit/Mesa-3D/issues/327 Signed-off-by: Axel Davy <[email protected]> Tested-by: Dieter Nützel <[email protected]> Cc: [email protected]
* st/nine: Bind src not dst in nine_context_box_uploadAxel Davy2018-12-234-6/+6
| | | | | | | | | | | | nine_context_box_upload uploads a ram buffer (from src) to a pipe_resource (dst). We already have a refcount on the pipe_resource, what needs to be protected from release is the ram buffer, thus a reference to src. Signed-off-by: Axel Davy <[email protected]> Tested-by: Dieter Nützel <[email protected]> Cc: [email protected]
* st/nine: Fix volumetexture dtor on ctor failureAxel Davy2018-12-231-1/+2
| | | | | | | | | | The dtor is called on allocation failure, thus we must check the volumes are allocated before trying to release them. Signed-off-by: Axel Davy <[email protected]> Tested-by: Dieter Nützel <[email protected]> Cc: [email protected]
* st/nine: Switch to presentation buffer if resize is detectedAxel Davy2018-12-231-1/+36
| | | | | | | | | This enables to match the window size on resize on all cases, as it only works currently with presentation buffers. Signed-off-by: Axel Davy <[email protected]> Tested-by: Dieter Nützel <[email protected]>
* st/nine: Use helper to release swapchain buffers laterAxel Davy2018-12-232-8/+42
| | | | | | | | | | | This patch introduces a structure to release the present_handles only when they are fully released by the server, thus making "DestroyD3DWindowBuffer" actually release the buffer right away when called. Signed-off-by: Axel Davy <[email protected]> Tested-by: Dieter Nützel <[email protected]>
* st/dri: replace format conversion functions with single mapping tableLucas Stach2018-12-182-352/+149
| | | | | | | | | | | | | | | | Each time I have to touch the buffer import/export functions in the dri state tracker I get lost in the maze of functions converting between DRI_IMAGE_FOURCC, DRI_IMAGE_FORMAT, DRI_IMAGE_COMPONENTS and pipe format. Rip it out and replace by a single table, which defines the correspondence between the different representations. Also this now stores all the known representations in the __DRIimageRec, to avoid the loss of information we currently have when importing a buffer with a fourcc, which doesn't have a corresponding dri format. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* st/dri: allow both render and sampler compatible dma-buf formatsLucas Stach2018-12-181-12/+18
| | | | | | | | | | | | | | Currently all the EGL APIs are missing a way to specify how an imported dma-buf is intended to be used. Demanding the format to be both usable for sampling and rendering artificially restricts the list of formats a driver is able to import. Looking at how the Intel driver implements those DRI2 image APIs it doesn't distinguish between render or sampler compatible formats. So this patch aligns behavior between Intel and Gallium based drivers. Signed-off-by: Lucas Stach <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* clover: Fix build after clang r348827Jan Vesely2018-12-161-1/+6
| | | | | | | | | | CodeGenOptions were moved to Basic. Signed-off-by: Jan Vesely <[email protected]> Reviewed-by: Aaron Watry <[email protected]> Tested-by: Aaron Watry <[email protected]> Reviewed-by: Kai Wasserbäch <[email protected]> CC: [email protected]