aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* pan/mdg: Ensure ld_vary_16 is alignedAlyssa Rosenzweig2020-06-041-0/+6
| | | | | | | | Otherwise packing may fail. Signed-off-by: Alyssa Rosenzweig <[email protected]> Fixes: 5f8dd413bcc ("pan/mdg: Handle 16-bit ld_vary") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5339>
* freedreno/a6xx: Fix VFD_CONTROL emitKristian H. Kristensen2020-06-042-11/+8
| | | | | | | | | | The FETCH_CNT field isn't actually the FETCH count. We don't have a lot of data where it's different from DECODE_CNT, so there's not much to go by. It could be number of VFD_DEST_CNTL or maybe DECODE_CNT for binning. For now, setting both to number of DEST_CNTL gets Google Earth working again. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5324>
* radv: Always expose non-visible local memory type on dedicated GPUsClément Guérin2020-06-041-18/+7
| | | | | | | | | | | DOOM Eternal expects this type, but RADV doesn't expose it when the VRAM is entirely host-visible, in my case on Fiji. Matches AMDVLK behavior. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/3054 Cc: <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5308>
* pan/mdg: Legalize inverts with constantsAlyssa Rosenzweig2020-06-042-7/+37
| | | | | | | | | | We need to force src_invert to be in the right place even if we flip when lowering an embedded->inline constant. Signed-off-by: Alyssa Rosenzweig <[email protected]> Fixes: 449e5ded934 ("pan/mdg: Treat inot as a modifier") Reported-by: Icecream95 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5299>
* nir: reuse existing psiz-variableErik Faye-Lund2020-06-041-6/+20
| | | | | | | | | | For shaders where there's already a psiz-variable, we should rather reuse it than create a second one. This can happen if a shader writes gl_PointSize, but disables GL_PROGRAM_POINT_SIZE. Fixes: 878c94288a8 ("nir: add lowering-pass for point-size mov") Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5328>
* i965: fix export of GEM handlesLionel Landwerlin2020-06-044-5/+152
| | | | | | | | | | | | | | | | | | | | | | | | We reuse DRM file descriptors internally. Therefore when we export a GEM handle we must do so in the file descriptor used externally. v2: Fix dmabuf leak Fix GEM handle leaks by tracking exported handles v3: Check os_same_file_description error (Michel) Don't create multiple exports for a given GEM table v4: Add WARN_ONCE (Ken) v5: Remove blank line (Ian) Remove unused field (Ian) Signed-off-by: Lionel Landwerlin <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2882 Fixes: 4094558e8643 ("i965: share buffer managers across screens") Tested-by: Eric Engestrom <[email protected]> Tested-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861>
* iris: fix export of GEM handlesLionel Landwerlin2020-06-045-10/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We reuse DRM file descriptors internally. Therefore when we export a GEM handle we must do so in the file descriptor used externally. This change also fixes a file descriptor leak of the FD given at screen creation. v2: Don't bother checking fd equals, they're always different Fix dmabuf leak Fix GEM handle leaks by tracking exported handles v3: Check os_same_file_description error (Michel) Don't create multiple exports for a given GEM table v4: Add WARN_ONCE (Ken) Rename external_fd to winsys_fd v5: Remove export lock in favor of bufmgr's Signed-off-by: Lionel Landwerlin <[email protected]> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2882 Fixes: 7557f1605968 ("iris: share buffer managers accross screens") Tested-by: Eric Engestrom <[email protected]> Tested-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861>
* i965: don't forget to set screen on duped imageLionel Landwerlin2020-06-041-0/+1
| | | | | | | | | | We'll start using this field more for querying image properties. Without it we run into a crash. Signed-off-by: Lionel Landwerlin <[email protected]> Cc: <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861>
* iris: fix BO destruction in error pathLionel Landwerlin2020-06-041-1/+3
| | | | | | | | | Signed-off-by: Lionel Landwerlin <[email protected]> Cc: <[email protected]> Tested-by: Tapani Pälli <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861>
* mesa: Fix NetBSD compiler macro.Vinson Lee2020-06-032-2/+2
| | | | | | | | | Reported-by: Rafał Mikrut <[email protected]> Fixes: a63b90712aad ("mesa: also check for __NetBSD__") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3015 Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5191>
* freedreno/a6xx: also consider alpha-test for ztest-modeRob Clark2020-06-043-1/+4
| | | | | | | | | Looks like we don't have CI coverage for this (since deqp==GLES) but alpha test is conceptually the same as frag shaders with discard, and should be handled as such. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5298>
* freedreno/a6xx: add early-lrz-late-z modeRob Clark2020-06-043-18/+44
| | | | | | | | | | | | | | | | | Now that we are doing a better job of managing LRZ, add support for the EARLY_LRZ_LATE_Z mode. Since we properly disable LRZ write in cases where we don't know a fragment's z value during the binning pass (or when blend is enabled in a later draw, meaning we will need the earlier fragment's color), we can enable a mode that keeps the early-lrz test when the frag shader has kill/discard. This will only discard geometry that is definitely not visible. This is a pretty big win for games/benchmarks that have a lot of frag shaders with kill/discard. More than 10% gain for gfxbench trex/mh and 40% gain for mh31. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5298>
* freedreno/a6xx: re-work LRZ state trackingRob Clark2020-06-0410-87/+162
| | | | | | | | | | In particular, properly detect reversal of depth-test direction. With that we can remove a lot of cases where we were unnecessarily invalidating LRZ, which was simply papering over the direction- reversal issue in deqp. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5298>
* freedreno/a6xx: update depth-plane control regsRob Clark2020-06-043-11/+56
| | | | | | | | | | | And document the early-lrz-late-z mode. Initially I thought this would be two bits to control early-lrz vs early-z. But having early-z without early-lrz does not make sense, and the way the values line up makes an enum fit better. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5298>
* freedreno/a6xx: sync registers from envytoolsRob Clark2020-06-041-1/+8
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5298>
* freedreno/ir3: split kill from no_earlyzRob Clark2020-06-049-9/+16
| | | | | | | | | Unlike other conditions which prevent early-discard of fragments, kill does not prevent early LRZ test. Split `has_kill` from `no_earlyz` so we can take advantage of this. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5298>
* docs/features.txt: Update for freedrenoKristian H. Kristensen2020-06-041-3/+3
| | | | | | | | | | We've had GL_OES_texture_cube_map_array for a while for a4xx+ and support for geometry and tessellation for a6xx+. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Acked-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5319>
* freedreno/a6xx: Turn on robustness extensionsKristian H. Kristensen2020-06-041-4/+2
| | | | | | | | | | | | With UBO access going through LDC, all memory access uses buffer based io primitives. We can then advertise PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR and PIPE_CAP_DEVICE_RESET_STATUS_QUERY, which turn on GL_EXT_robustness, GL_KHR_robust_buffer_access_behavior and GL_KHR_robustness. Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5319>
* vdpau: Fix wrong calloc sizeof argument.Vinson Lee2020-06-031-1/+1
| | | | | | | | | | | | | | | | Fix warning reported by Coverity Scan. Wrong sizeof argument (SIZEOF_MISMATCH) suspicious_sizeof: Passing argument 3544UL (sizeof (vlVdpPresentationQueue)) to function calloc that returns a pointer of type vlVdpPresentationQueueTarget * is suspicious because a multiple of sizeof (vlVdpPresentationQueueTarget) /*16*/ is expected. Fixes: 65fe0866aec7 ("vl: implemented a few functions and made stubs to get mplayer running") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3026 Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5182>
* OPTIONAL: iris: Perform BLORP buffer barriers outside of iris_blorp_exec() hook.Francisco Jerez2020-06-034-15/+24
| | | | | | | | | | | | | | | | | | | | | The iris_blorp_exec() hook needs to be executed under a single indivisible sync region, which means that in cases where we need to emit a PIPE_CONTROL for a buffer barrier we won't be able to track the subsequent commands separately from the previous commands, which will prevent us from optimizing out subsequent PIPE_CONTROLs if we encounter the same buffers again. In particular I've encountered this situation in some SynMark test-cases which perform lots of BLORP operations with the same buffer bound as both source and destination (in order to generate mipmaps): In such a scenario if the source requires flushing we'd also end up flushing for the destination redundantly, even though a single PIPE_CONTROL would have been sufficient. This avoids a 4.5% FPS regression in SynMark OglHdrBloom and a 3.5% FPS regression in SynMark OglMultithread. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Remove iris_flush_depth_and_render_caches().Francisco Jerez2020-06-032-28/+0
| | | | | | | This helper is unused now. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Emit single render target flush PIPE_CONTROL on format mismatch.Francisco Jerez2020-06-031-1/+4
| | | | | | | | | | The big-hammer iris_flush_depth_and_render_caches() is largely redundant whenever a format mismatch is detected from iris_cache_flush_for_render(). There is no need to kick the depth, sampler nor constant caches in that case. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Open-code iris_cache_flush_for_read() and iris_cache_flush_for_depth().Francisco Jerez2020-06-033-23/+12
| | | | | | | These have become one-liners now so they can be easily inlined. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Remove render cache hash table-based synchronization.Francisco Jerez2020-06-035-59/+7
| | | | | | | | | | | The render cache hash table is now *mostly* redundant with the more general seqno matrix-based cache tracking mechanism. Most hash table operations are now gone except for the format mismatch checks done in iris_cache_flush_for_render(). Redundant code removed as a separate patch for bisectability. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Remove depth cache set tracking and synchronization.Francisco Jerez2020-06-036-37/+2
| | | | | | | | | The depth cache set is now redundant with the more general seqno matrix-based cache tracking mechanism. Removed as a separate patch for bisectability. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Perform compute predraw flushes from compute batch.Francisco Jerez2020-06-031-7/+2
| | | | | | | | | | Whenever iris_predraw_resolve_inputs() ends up doing a flush or invalidate, we really want it to be on the same batch which is going to consume the result. Any resolves should still be performed from the render batch thanks to the previous patch. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Remove batch argument of iris_resource_prepare_access() and friends.Francisco Jerez2020-06-035-24/+22
| | | | | | | | | | | | The resolves performed by this function are only expected to work from the render batch, so make sure we use it independently of the batch the caller wants to use. This function provides no synchronization guarantees anyway, the caller is expected to insert any cache flushing and synchronization required for the resolved surface to be visible to the target batch. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Insert buffer barrier in existing cache flush helpers.Francisco Jerez2020-06-031-0/+6
| | | | | | | | As a first step to phasing out the current hashtable-based depth and render cache tracking mechanisms. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Implement buffer-local memory barrier based on cache coherency matrix.Francisco Jerez2020-06-032-0/+132
| | | | | | | | | | | | | | This takes advantage of the previously introduced cache tracking infrastructure in order to define a multi-purpose barrier operation that allows the caller to order memory operations with respect to previous operations performed on the same buffer from any other cache domain. v2: Assorted CPU overhead micro-optimizations (Francisco). v3: Use C99 designated initializers (Ken). Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Update cache coherency matrix on PIPE_CONTROL.Francisco Jerez2020-06-031-0/+40
| | | | | | | | | This introduces a batch synchronization boundary at every PIPE_CONTROL command, and updates the cache coherency status tracked during batch construction according to the specified control bits. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Introduce cache coherency matrix for batch-local memory ordering.Francisco Jerez2020-06-032-0/+50
| | | | | | | | | | | | | | | | | | | | | | | This introduces a representation of the cache coherency status of the GPU at any point in the batch. This is done by defining a matrix C of synchronization sequence numbers such that at any point of batch construction, a memory operation from domain i introduced into the batch is guaranteed to be ordered after any memory operation from domain j in a previous batch section with seqno n if the following condition holds: C_i_j >= n This allows us to efficiently determine whether additional flushing and/or invalidation is required in order to access a buffer object from some arbitrary domain. Except for batch buffer reset which requires clearing the whole matrix, all operations on the matrix are either O(n) or O(1) on the number of caching domains (which is basically constant). Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Report use of any in-flight buffers on first draw call after sync ↵Francisco Jerez2020-06-032-4/+8
| | | | | | | | | | | | | | | | | | | | | | | boundary. This is the main performance trade-off of this cache tracking mechanism: In order for the seqno vector of buffer objects to be accurate, they need to be marked as used again every time the batch is split into a new synchronization section if they remain bound to the pipeline. This can be achieved easily by re-using iris_restore_render_saved_bos() and iris_restore_compute_saved_bos(), which currently serve a similar purpose across batch buffer boundaries. The impact on Piglit drawoverhead results seems to be within a standard deviation of the current results. XXX - It might be possible to completely remove the current iris_batch::contains_draw flag at a small additional performance cost. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Drop redundant iris_address::write flag.Francisco Jerez2020-06-033-5/+4
| | | | | | | | | | The write flag is redundant since it can be inferred easily from the iris_address::access domain. This allows the iris_address struct to be laid out more efficiently in memory, leading to a measurable improvement in several Piglit Drawoverhead test-cases. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Annotate all BO uses with domain and sequence number information.Francisco Jerez2020-06-038-92/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Probably the most annoying patch to review from the whole series -- Mark every buffer object use as accessed through some caching domain with the sequence number of the current synchronization section of the batch. The additional argument of iris_use_pinned_bo() makes sure I'd have gotten a compile error if I had missed any buffer added to the batch validation list. There are only a few exceptions where a buffer is left untracked while adding it to the validation list, justified below: - Batch buffers: These are strictly read-only for the moment. - BLORP buffer objects: Their seqnos are bumped manually at the end of iris_blorp_exec() instead, in order to avoid plumbing domain information through BLORP address combining. - Scratch buffers: The contents of these are strictly thread-local. - Shader images and SSBOs: Accesses of these buffers are explicitly synchronized at the API level. v2: Opt out of tracking more aggressively (Ken): In addition to the above, surface states, binding tables, instructions and most dynamic states are now left untracked, which means a *lot* more BO uses marked IRIS_DOMAIN_NONE which need to be reviewed extremely carefully, since the cache tracker won't be able to provide any coherency guarantees for them. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Bracket batch operations which access memory within sync regions.Francisco Jerez2020-06-035-3/+76
| | | | | | | | | | | | | | | This delimits all batch operations which access memory between iris_batch_sync_region_start() and iris_batch_sync_region_end() calls. This makes sure that any buffer objects accessed within the region are considered in use through the same caching domain until the end of the region. Adding any buffer to the batch validation list outside of a sync region will lead to an assertion failure in a future commit, unless the caller explicitly opted out of the cache tracking mechanism. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Add infrastructure to partition batch into sync boundaries.Francisco Jerez2020-06-033-0/+61
| | | | | | | | | | | | This introduces some minimalistic infrastructure which will be used in order to partition the batch into a series of sections, each one with a unique, monotonically-increasing sequence number. Section boundaries will typically lie at points in the batch where the execution and memory coherency status of some previous commands are known, e.g. at batch buffer boundaries or PIPE_CONTROL commands. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* iris: Add batch-local synchronization book-keeping to iris_bo.Francisco Jerez2020-06-031-0/+55
| | | | | | | | | | | | | | | | The purpose of this is to represent the cache coherency state of a buffer as a vector of integers (AKA seqnos), one for each incoherent caching domain of the GPU. A seqno will identify a single section of a batch buffer uniquely across the whole pipe_screen (which means that there will be no ambiguity about what context a given seqno belongs to even if there are multiple threads accessing the same buffer in parallel), and is guaranteed to be allocated in monotonically increasing order within any given context. The iris_bo_bump_seqno() helper is provided for marking the last update of a buffer from a given caching domain in a lockless manner. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3875>
* panfrost: Mark point sprites as todo on BifrostAlyssa Rosenzweig2020-06-031-2/+7
| | | | | | | | | Emulating them will be a rather annoying dance. Let's not worry about this until further down the line when we have a better sence of how to do handle them efficiently. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5290>
* panfrost: Fix gl_PointSize out of GL_POINTSAlyssa Rosenzweig2020-06-031-0/+9
| | | | | | | | | | | | | | | | | | | In this case, vs->writes_point_size is true as the VS writes gl_PointSize, but panfrost_writes_points_size() is false as we are not drawing points so the hardware doesn't process it. Thus the varying descriptor is emitted but elements is never written. When the VS runs, it will attempt to write to elements, a NULL pointer. The behaviour is architecture-independent. On Midgard, the write silently fails, hence why this bug was never noticed before. On Bifrost, this raises an MMU fault. The fix is to set the format to VARYING_DISCARD to ignore the write. Noticed on Neverball. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5290>
* panfrost: Prefer sysval for gl_PointCoord on BifrostAlyssa Rosenzweig2020-06-031-0/+1
| | | | | | | | It's like gl_FragCoord. Still not implemented. This unfortunately makes point sprites a lot more complicated. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5290>
* pan/bi: Disassemble gl_PointCoord reads.Alyssa Rosenzweig2020-06-031-1/+3
| | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5290>
* panfrost: Explicitly convert to 32-bit for logic-opsAlyssa Rosenzweig2020-06-031-1/+11
| | | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Reported-by: Icecream95 <[email protected]> Fixes: 19b4e586f62 ("panfrost: Switch to pan_lower_framebuffer") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5289>
* panfrost: Readd MIDGARD_SHADERLESS quirk to t760Alyssa Rosenzweig2020-06-031-1/+1
| | | | | | | Signed-off-by: Alyssa Rosenzweig <[email protected]> Reported-by: Icecream95 <[email protected]> Fixes: e53d27de61b ("panfrost: Add quirks for blend shader types") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5289>
* iris: Extend iris_context dirty state flags to 128 bits.Francisco Jerez2020-06-0311-219/+269
| | | | | | | | | | | | | We're nearly out of dirty bits, and some patches pending review on GitLab no longer apply due to that. Make room for them by splitting off shader stage-specific bits into a separate stage_dirty mask. An alternative would be to split compute-related bits into a separate mask, but that would prevent the '<< stage' indexing done in various parts of the driver from working. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5279>
* iris: Simplify iris_batch_prepare_noop().Francisco Jerez2020-06-033-13/+11
| | | | | | | | | This makes iris_batch_prepare_noop() return a boolean instead of passing through the relevant set of dirty flags. It will make it easier to change the representation of dirty flags. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5279>
* nir/lower_tex: fixes for fp16 yuv loweringRob Clark2020-06-031-5/+10
| | | | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3079 Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5318>
* nir/builder: add bitsize conversion helpersRob Clark2020-06-031-0/+24
| | | | | | | | Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5318>
* nir: extract out convert_to_bitsize() helperRob Clark2020-06-032-16/+17
| | | | | | | | Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5318>
* nir: get_base_type() should return enum typeRob Clark2020-06-031-2/+2
| | | | | | | | | | | Needed by the next patch, for c++ code which is more strict about conversions between integers and enums. Signed-off-by: Rob Clark <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5318>
* panfrost: Handle writes_memory correctlyAlyssa Rosenzweig2020-06-033-3/+8
| | | | | | | | We need to pass it thru to EARLY_Z and WRITES_GLOBAL instead of ignoring and assuming respectively. Nontrivial performance fix. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5300>