Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ccc1c482610103def4e6ef0c535241f1064631d9
https://github.com/WebKit/WebKit/commit/ccc1c482610103def4e6ef0c535241f1064631d9
Author: Nikolas Zimmermann <[email protected]>
Date: 2025-12-04 (Thu, 04 Dec 2025)
Changed paths:
M Source/WebCore/SourcesGTK.txt
M Source/WebCore/SourcesWPE.txt
M Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp
M Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.h
A Source/WebCore/platform/graphics/gbm/VivanteSuperTiledTexture.cpp
A Source/WebCore/platform/graphics/gbm/VivanteSuperTiledTexture.h
A Source/WebCore/platform/graphics/gbm/VivanteSuperTiledTextureInlines.h
M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp
M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h
M Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp
M Source/WebCore/platform/graphics/texmap/BitmapTexture.h
M Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreTile.cpp
Log Message:
-----------
[GTK][WPE] Support Vivante super-tiled format for MemoryMappedGPUBuffer
https://bugs.webkit.org/show_bug.cgi?id=303307
Reviewed by Carlos Garcia Campos.
Add VivanteSuperTiledTexture class to handle Vivante GPU's super-tiled
memory layout, which organizes textures as 64x64 super-tiles containing
4x4 tiles in Morton code (z-curve) order (e.g. used on i.MX6/i.MX8 platforms).
Extend MemoryMappedGPUBuffer to support ForceVivanteSuperTiled buffer
flag for allocating DMA buffers with DRM_FORMAT_MOD_VIVANTE_SUPER_TILED
modifier. Add updateContentsInVivanteSuperTiledFormat() for CPU writes
to super-tiled buffers.
The feature is controlled via WEBKIT_SKIA_USE_VIVANTE_SUPER_TILED_TILE_TEXTURES
environment variable and requires physical/logical size separation in
BitmapTexture due to 64x64 alignment requirements.
* Source/WebCore/SourcesGTK.txt:
* Source/WebCore/SourcesWPE.txt:
* Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp:
(WebCore::MemoryMappedGPUBuffer::MemoryMappedGPUBuffer):
(WebCore::MemoryMappedGPUBuffer::create):
(WebCore::MemoryMappedGPUBuffer::allocate):
(WebCore::MemoryMappedGPUBuffer::isVivanteSuperTiled const):
(WebCore::MemoryMappedGPUBuffer::mapIfNeeded):
(WebCore::MemoryMappedGPUBuffer::updateContents):
(WebCore::MemoryMappedGPUBuffer::updateContentsInLinearFormat):
(WebCore::MemoryMappedGPUBuffer::updateContentsInVivanteSuperTiledFormat):
(WebCore::MemoryMappedGPUBuffer::mappedDataSpan const):
* Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.h:
* Source/WebCore/platform/graphics/gbm/VivanteSuperTiledTexture.cpp: Added.
(WebCore::interleave):
(WebCore::VivanteSuperTiledTexture::zCurveTileLUT):
(WebCore::VivanteSuperTiledTexture::zCurveTexelLUT):
* Source/WebCore/platform/graphics/gbm/VivanteSuperTiledTexture.h: Added.
(WebCore::VivanteSuperTiledTexture::alignToSuperTileIntSize):
(WebCore::VivanteSuperTiledTexture::alignToSuperTile):
* Source/WebCore/platform/graphics/gbm/VivanteSuperTiledTextureInlines.h: Added.
(WebCore::VivanteSuperTiledTexture::VivanteSuperTiledTexture):
(WebCore::VivanteSuperTiledTexture::writeLine):
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp:
(WebCore::SkiaPaintingEngine::shouldUseVivanteSuperTiledTileTextures):
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h:
* Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::BitmapTexture):
(WebCore::BitmapTexture::updateContents):
* Source/WebCore/platform/graphics/texmap/BitmapTexture.h:
* Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp:
(WebCore::BitmapTexturePool::acquireTexture):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreTile.cpp:
(WebCore::CoordinatedBackingStoreTile::processPendingUpdates):
Canonical link: https://commits.webkit.org/303900@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications