summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* wayland-egl: Make wl_egl_window a versioned structMiguel A. Vico2017-07-243-2/+24
| | | | | | | | | | | | | | | | | | | | | | We need wl_egl_window to be a versioned struct in order to keep track of ABI changes. This change makes the first member of wl_egl_window the version number. An heuristic in the wayland driver is added so that we don't break backwards compatibility: - If the first field (version) is an actual pointer, it is an old implementation of wl_egl_window, and version points to the wl_surface proxy. - Else, the first field is the version number, and we have wl_egl_window::surface pointing to the wl_surface proxy. Signed-off-by: Miguel A. Vico <[email protected]> Reviewed-by: James Jones <[email protected]> Acked-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: Fix _eglPointerIsDereferencable() to ignore page residencyMiguel A. Vico2017-07-241-1/+12
| | | | | | | | | | | | | | | | | mincore() returns 0 on success, and -1 on failure. The last parameter is a vector of bytes with one entry for each page queried. mincore returns page residency information in the first bit of each byte in the vector. Residency doesn't actually matter when determining whether a pointer is dereferenceable, so the output vector can be ignored. What matters is whether mincore succeeds. See: http://man7.org/linux/man-pages/man2/mincore.2.html Signed-off-by: Miguel A. Vico <[email protected]> Acked-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: Move _eglPointerIsDereferencable() to eglglobals.[ch]Miguel A. Vico2017-07-243-33/+37
| | | | | | | | | | Move _eglPointerIsDereferencable() to eglglobals.[ch] and make it a non-static function so it can be used out of egldisplay.c Signed-off-by: Miguel A. Vico <[email protected]> Reviewed-by: James Jones <[email protected]> Acked-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* wayland-egl: Add wl_egl_window ABI checkerMiguel A. Vico2017-07-242-1/+180
| | | | | | | | | | Add a small ABI checker for wl_egl_window so that we can check for backwards incompatible changes at 'make check' time. Signed-off-by: Miguel A. Vico <[email protected]> Reviewed-by: James Jones <[email protected]> Acked-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* swr: use the correct variable for no undefined symbolsEmil Velikov2017-07-241-1/+1
| | | | | | | | | | | | | | | | | | | | | The variable name was missing a leading LD_, which resulted in a missing check for unresolved symbols in the backend binaries. With the link addressed with earlier patches, we can correct the typo. Thanks to Laurent for the help spotting this. v2: Split from a larger patch. Cc: [email protected] Cc: Bruce Cherniak <[email protected]> Cc: Tim Rowley <[email protected]> Cc: Laurent Carlier <[email protected]> Fixes: 9475251145174882b532 "swr: standardize linkage and check for unresolved symbols" Reviewed-by: Eric Engestrom <[email protected]> Reported-by: Laurent Carlier <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* swr: don't forget to link KNL/SKX against pthreadsEmil Velikov2017-07-241-0/+8
| | | | | | | | | | Analogous to previous commit but for the KNL/SKX backends. Cc: Bruce Cherniak <[email protected]> Cc: Tim Rowley <[email protected]> Cc: Laurent Carlier <[email protected]> Fixes: 1cb5a6061ce ("configure/swr: add KNL and SKX architecture targets") Signed-off-by: Emil Velikov <[email protected]>
* swr: don't forget to link AVX/AVX2 against pthreadsEmil Velikov2017-07-241-0/+8
| | | | | | | | | | | | | | | | | | Seems like the backends have been using pthreads since day one, yet we've been missing the link. With later commit we'll fix a typo, hence the libraries will be build with -Wl,no-undefined, aka failing the build on unresolved symbols. v2: Split from a larger patch. Cc: [email protected] Cc: Bruce Cherniak <[email protected]> Cc: Tim Rowley <[email protected]> Cc: Laurent Carlier <[email protected]> Fixes: c6e67f5a9373e916a8d2 "gallium/swr: add OpenSWR rasterizer" Reviewed-by: Eric Engestrom <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* configure.ac: rework wayland-protocols handlingEmil Velikov2017-07-242-9/+17
| | | | | | | | | | | | | | | | | | At dist/distcheck time we need to ensure that all the files and their respective dependencies are handled. At the moment we'll bail out as the linux-dmabuf rules are guarded in a conditional. Move them outside of it and drop the sources from BUILT_SOURCES. Thus the files will be generated only as needed, which will happen only after the wayland-protocols dependency is enforced in configure.ac. v2: add dependency tracking for the header Cc: Andres Gomez <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]>
* radv: enable sample shadingDave Airlie2017-07-242-2/+4
| | | | | | | This calculates ps_iter_samples from the minSampleShading input Reviewed-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* radv: don't set dedicated bit for buffer external memory.Dave Airlie2017-07-241-2/+1
| | | | | | | | | | This is an alternate fix for the buffer export dedicated interaction. Fixes CTS dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.info Fixes: b70829708a (radv: Implement VK_KHR_external_memory) Reviewed-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* radv: fix non-0 based layer clears.Dave Airlie2017-07-241-4/+9
| | | | | | | | | | | If the layer base was > 0, it wasn't getting passed as the start instance or getting added in the shaders. Fixes CTS dEQP-VK.api.image_clearing.core.clear_color_attachment.2d_r8_uint_multiple_layers Fixes: 7e0382fb (radv: add support for layered clears (v2)) Reviewed-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* radv: check enabled device features.Dave Airlie2017-07-241-0/+13
| | | | | | | | | | | The spec says we should return VK_ERROR_FEATURE_NOT_PRESENT. Ported from anv. Fixes CTS test dEQP-VK.api.device_init.create_device_unsupported_features Reviewed-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* radv: for external memory imports close the fd on import successDave Airlie2017-07-241-1/+3
| | | | | | | | | | If we get an fd, we need to close it before returning. Fixes CTS test dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.import_multiple_times Fixes: b70829708a (radv: Implement VK_KHR_external_memory) Reviewed-by: Jason Ekstrand <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* radv: Don't segfault when exporting an image which hasn't been bound yet.Bas Nieuwenhuizen2017-07-241-1/+1
| | | | | | | | | | | | | The image is set on Memory allocation already, but the image doesn't have to have the BindImageMemory called yet. Luckily, we know offset within a BO has to be 0 for dedicated allocations, so we can just use the dummy 0 in the address calaculations. Fixes CTS test dEQP-VK.api.external.memory.opaque_fd.dedicated.image.export_bind_import_bind Signed-off-by: Bas Nieuwenhuizen <[email protected]> Fixes: b70829708ac "radv: Implement VK_KHR_external_memory" Reviewed-by: Dave Airlie <[email protected]>
* radv: Handle VK_ATTACHMENT_UNUSED in color attachments.Bas Nieuwenhuizen2017-07-246-20/+45
| | | | | | | | | | | | This just sets them to INVALID COLOR, instead of shifting the attachments together. This also fixes a number of cases where we use it first and only then check if it is VK_ATTACHMENT_UNUSED. Signed-off-by: Bas Nieuwenhuizen <[email protected]> Fixes: f4e499ec791 "radv: add initial non-conformant radv vulkan driver" Reviewed-by: Dave Airlie <[email protected]>
* broadcom: correct header file in BROADCOM_FILESAndres Gomez2017-07-241-1/+1
| | | | | | | | | | | | | | | | This fixes `make distcheck` > make[3]: *** No rule to make target 'common/v3d_devinfo.h', needed by 'distdir'. Stop. > make[3]: Leaving directory '/home/local/mesa/src/broadcom' > Makefile:945: recipe for target 'distdir' failed > make[2]: Leaving directory '/home/local/mesa/src' > make[2]: *** [distdir] Error 1 > make[1]: *** [distdir] Error 1 Fixes: 427bbbb99c ("broadcom: Introduce a header for talking about chip revisions.") Cc: Emil Velikov <[email protected]> Signed-off-by: Andres Gomez <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* etnaviv: Clear lbl_usage array correctlyWladimir J. van der Laan2017-07-231-1/+1
| | | | | | | | | | | | | Fill the entire array instead of just a quarter. This avoids crashes with large shaders. (currently this never causes a problem because shaders larger than 2048/4 instructions are not supported by this driver on any hardware, but it will cause problems in the future) Fixes: ec436051899 ("etnaviv: fix shader miscompilation with more than 16 labels") Cc: [email protected] Signed-off-by: Wladimir J. van der Laan <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
* anv/image: zalloc image viewsJason Ekstrand2017-07-221-7/+1
| | | | | | This allows us to avoid some extra zeroing. Reviewed-by: Lionel Landwerlin <[email protected]>
* anv/image: Use vk_zalloc instead of an explicit memsetJason Ekstrand2017-07-221-3/+2
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Separate surface states by layout instead of aux_usageJason Ekstrand2017-07-224-53/+58
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/isl: Add some sanity checks for compressed surfacesJason Ekstrand2017-07-221-0/+18
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* intel/isl: Add a helper to get a subimage surfaceJason Ekstrand2017-07-223-30/+76
| | | | | | | We already have a helper for doing this in BLORP, this just moves the logic into ISL where we can share it with other components. Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Get rid of some unused function declarationsJason Ekstrand2017-07-221-7/+0
| | | | Reviewed-by: Lionel Landwerlin <[email protected]>
* i965: Enable regular fast-clears (CCS_D) on gen9+Jason Ekstrand2017-07-226-59/+45
| | | | | | | | | | | | | | | The set of formats which supports CCS_E is actually fairly small on gen9. However, everything that supports fast-clears on gen8 also supports fast-clears on gen9+. The one very annoying exception is that blending is broken for non-0/1 clear colors with sRGB formats. In order to solve that problem, we do a resolve to get rid of the clear color. Another option would be to just not fast-clear with non-0/1 clear colors however non-0/1 + blending + sRGB is uncommon enough that this shouldn't be a significant performance problem. This appears to help gl_manhattan31_off by about 2%. Reviewed-by: Topi Pohjolainen <[email protected]>
* intel/isl: Add a helper for determining if a color is 0/1Jason Ekstrand2017-07-222-0/+30
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* intel/blorp: Allow blorp_copy on sRGB formatsJason Ekstrand2017-07-221-2/+16
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965: Weaken the texture view rules for formats slightlyJason Ekstrand2017-07-221-1/+18
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* intel/isl/format: Add an srgb_to_linear helperJason Ekstrand2017-07-222-1/+53
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* intel/isl/format: Dedent the template in gen_format_layout.pyJason Ekstrand2017-07-221-58/+57
| | | | | | | This makes it much easier to edit the template and doesn't really dirty the python all that much. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/surface_state: Get the aux usage from the miptree codeJason Ekstrand2017-07-221-95/+13
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/surface_state: Take an isl_aux_usage in emit_surface_stateJason Ekstrand2017-07-221-26/+47
| | | | | | | | This commit replaces the generic "flags" parameter with a more explicit aux usage parameter. This leads to a lot of duplicated code at the moment but this will all get cleaned up directly. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Take an isl_format in prepare_textureJason Ekstrand2017-07-223-12/+13
| | | | | This will be a bit more convenient momentarily. It's also more correct because it makes prepare_texture take sRGB into account.
* i965/miptree: Use miptree range helpers in has_color_unresolvedJason Ekstrand2017-07-221-43/+38
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Allow for accessing a CCS_E image as CCS_DJason Ekstrand2017-07-221-9/+27
| | | | | | | | This requires us to start using the partial clear state. It makes things quite a bit more complicated but it's still a fairly straightforward exercise in diagram following. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Use ISL_AUX_STATE_PARTIAL_CLEAR for CCS_DJason Ekstrand2017-07-221-5/+5
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* intel/isl: Add an aux state for "partial clear"Jason Ekstrand2017-07-222-35/+65
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Take an aux_usage in prepare/finishJason Ekstrand2017-07-224-60/+80
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Refactor some things to use mt->aux_usageJason Ekstrand2017-07-221-37/+56
| | | | | | | Now that we have this field, it's much easier to switch on it than to walk an if ladder that checks different things. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/blorp: Use prepare/finish_depth for depth clearsJason Ekstrand2017-07-221-36/+21
| | | | | | | We also simplify the way we handle stencil since we know a priori that it will have ISL_AUX_USAGE_NONE. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/blorp: Use render_aux_usage for color clearsJason Ekstrand2017-07-221-12/+6
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/blorp: Be more accurate about aux usage in blorp_copyJason Ekstrand2017-07-221-13/+42
| | | | | | | | The only real change here is that we now reject clear colors for MCS with certain formats on gen < 9 because we can't trust that the reinterpretation will work. This may cause some MCS partial resolves. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/blorp: Use texture/render_aux_usage for blitsJason Ekstrand2017-07-221-16/+16
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/blorp: Do prepare/finish manuallyJason Ekstrand2017-07-221-38/+92
| | | | | | | | | | | Our attempts to do it automatically are problematic at best. In order to really be precise, we need to know both the desired aux usage and whether or not clear is supported. The current automatic mechanism doesn't cover this. This commit itself is not a functional change since it just reworks everything to be in terms of a silly helper. Later commits will switch things over to more sensible ways of choosing usage. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Rework prepare/finish_render to be in terms of aux_usageJason Ekstrand2017-07-223-20/+59
| | | | | | | | We keep the old and possibly broken method of determining aux usage intact for now. Therefore, the only functional change here is that we may call finish_render a bit more accurately. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Add a helper for getting the aux usage for texturingJason Ekstrand2017-07-222-20/+43
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Partially resolve MCS for texture viewsJason Ekstrand2017-07-221-7/+7
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Add support for partially resolving MCSJason Ekstrand2017-07-223-3/+67
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Tighten up finish_mcs_writeJason Ekstrand2017-07-221-7/+8
| | | | | | | Multisample surfaces only have a single miplevel so there's no reason to be passing the extra parameters around. It only leads to confusion. Reviewed-by: Topi Pohjolainen <[email protected]>
* i965/miptree: Make aux_state work in terms of logical layersJason Ekstrand2017-07-221-6/+13
| | | | | | | | | This commit changes layer_range_length to return locical layers and also changes the way we allocate the aux_state field to not allocate extra layers for MCS. This will be important as we're about to start doing significantly more detailed tracking of MCS state. Reviewed-by: Topi Pohjolainen <[email protected]>
* intel/blorp: Add a partial resolve pass for MCSJason Ekstrand2017-07-224-1/+213
| | | | Reviewed-by: Topi Pohjolainen <[email protected]>