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

Reply via email to