mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-29 06:20:37 +02:00
gbm/dri: Check dri extension version before flush after unmap
The commit mentioned below required the __DRI2FlushExtension to have
version 4 or above, for GBM functionality. That broke GBM with some
classic dri drivers. Relax that requirement so that we only flush
after unmap if we have version 4 or above. Drivers that require the flush
for correct functionality should implement the desired version.
Fixes: ba8df228 ("gbm/dri: Flush after unmap")
Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Dylan Baker <dylan@pnwbakers.com>
This commit is contained in:
parent
02112c3ef7
commit
18e2aa063c
1 changed files with 3 additions and 2 deletions
|
|
@ -253,7 +253,7 @@ struct dri_extension_match {
|
|||
};
|
||||
|
||||
static struct dri_extension_match dri_core_extensions[] = {
|
||||
{ __DRI2_FLUSH, 4, offsetof(struct gbm_dri_device, flush) },
|
||||
{ __DRI2_FLUSH, 1, offsetof(struct gbm_dri_device, flush) },
|
||||
{ __DRI_IMAGE, 1, offsetof(struct gbm_dri_device, image) },
|
||||
{ __DRI2_FENCE, 1, offsetof(struct gbm_dri_device, fence), 1 },
|
||||
{ __DRI2_INTEROP, 1, offsetof(struct gbm_dri_device, interop), 1 },
|
||||
|
|
@ -1245,7 +1245,8 @@ gbm_dri_bo_unmap(struct gbm_bo *_bo, void *map_data)
|
|||
* on the mapping context. Since there is no explicit gbm flush
|
||||
* mechanism, we need to flush here.
|
||||
*/
|
||||
dri->flush->flush_with_flags(dri->context, NULL, __DRI2_FLUSH_CONTEXT, 0);
|
||||
if (dri->flush->base.version >= 4)
|
||||
dri->flush->flush_with_flags(dri->context, NULL, __DRI2_FLUSH_CONTEXT, 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue