summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/etnaviv/etnaviv_rs.h
AgeCommit message (Collapse)AuthorFilesLines
2023-11-27etnaviv: rs: Call etna_rs_gen_clear_surface(..) when neededChristian Gmeiner1-0/+1
Calling etna_rs_gen_clear_surface(..) during surface creation could end in the following assert: etna_rs_gen_clear_surface: Assertion `!"" "bpp not supported for clear by RS"' Lets call etna_rs_gen_clear_surface(..) only when it is needed. Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com> Tested-by: Marek Vasut <marex@denx.de> Acked-by: David Heidelberg <david.heidelberg@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26096>
2022-04-27etnaviv: add support for big tile RS statesLucas Stach1-0/+1
On GPUs with the CACHE128B256BPERLINE feature the RS gained some new state bits to deal with the new additional information required for this big tile support. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9255>
2019-07-04etnaviv: implement buffer compressionJonathan Marek1-0/+1
Vivante GPUs have lossless buffer compression using the tile-status bits, which can reduce memory access and thus improve performance. This patch only enables compression for "V4" compression GPUs, but the implementation is tested on GC2000(V1) and GC3000(V2). V1/V2 compresssion looks absolutely useless, so it is not enabled. I couldn't test if this patch breaks MSAA, because it looks like MSAA is already broken. Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
2018-02-23etnaviv: fix in-place resolve tile countLucas Stach1-0/+1
TS tiles map to a fixed amount of bytes in the color/depth surface, so the blocksize of the format needs to be taken into account when calculating the number of tiles to fill. The simplest fix is to just use the layer stride, which is the surface size in bytes. Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
2017-11-30etnaviv: GC7000: Factor out RS blit functionalityWladimir J. van der Laan1-2/+2
Prepare for BLT-based blitting path by moving RS-based blitting to the RS implementation file, making this self-contained. Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
2017-11-02etnaviv: don't do resolve-in-place without valid TSWladimir J. van der Laan1-0/+2
GC3000 resolve-in-place assumes that the TS state is configured. If it is not, this will result in MMU errors. This is especially apparent when using glGenMipmaps(). Fixes: 78ade659569e ("etnaviv: Do GC3000 resolve-in-place when possible") Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com> Tested-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
2017-10-12etnaviv: Do GC3000 resolve-in-place when possibleWladimir J. van der Laan1-0/+2
If an RS blit is done with source exactly the same as destination, and the hardware supports this, do an in-place resolve. This only fills in tiles that have not been rendered to using information from the TS. This is the same as the blob does and potentially saves significant bandwidth when doing i.MX6qp scanout using PRE, and when rendering to textures (though here using sampler TS would be even better). Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
2017-01-12etnaviv: gallium driver for Vivante GPUsThe etnaviv authors1-0/+86
This driver supports a wide range of Vivante IP cores like GC880, GC1000, GC2000 and GC3000. Changes from V1 -> V2: - added missing files to actually integrate the driver into build system. - adapted driver to new renderonly API Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Wladimir J. van der Laan <laanwj@gmail.com> Acked-by: Emil Velikov <emil.velikov@collabora.com>