commit e3cddd698ceb0077468214c7dded8b2b5e793b1f
parent b49ccb7e945ca5e2f55971438fa8d309ae68bdb3
Author: Cosmin Sabou <csabou@mozilla.com>
Date: Sat, 18 Oct 2025 00:37:23 +0300
Revert "Bug 1994022 - Use Span for ExternalTextureSourceHost::CreateFromBufferDesc. r=webgpu-reviewers,jimb" for causing mda failures on test_standalone.
This reverts commit 109489f1e1fb65693a6899ad555064649725f241.
Diffstat:
2 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/dom/webgpu/ExternalTexture.cpp b/dom/webgpu/ExternalTexture.cpp
@@ -433,7 +433,7 @@ ExternalTextureSourceHost::ExternalTextureSourceHost(
ipc::Shmem& bufferShmem = bufferDesc.data().get_Shmem();
auto source =
CreateFromBufferDesc(aParent, aDeviceId, aQueueId, aDesc,
- bufferDesc.desc(), bufferShmem.Range<uint8_t>());
+ bufferDesc.desc(), bufferShmem.get<uint8_t>());
aParent->DeallocShmem(bufferShmem);
return source;
} break;
@@ -468,10 +468,9 @@ ExternalTextureSourceHost::ExternalTextureSourceHost(
"Unexpected TextureHost type"_ns);
return CreateError();
}
- return CreateFromBufferDesc(
- aParent, aDeviceId, aQueueId, aDesc,
- bufferHost->GetBufferDescriptor(),
- Span(bufferHost->GetBuffer(), bufferHost->GetBufferSize()));
+ return CreateFromBufferDesc(aParent, aDeviceId, aQueueId, aDesc,
+ bufferHost->GetBufferDescriptor(),
+ bufferHost->GetBuffer());
} break;
case layers::RemoteDecoderVideoSubDescriptor::TSurfaceDescriptorD3D10: {
@@ -527,7 +526,7 @@ ExternalTextureSourceHost::ExternalTextureSourceHost(
ExternalTextureSourceHost::CreateFromBufferDesc(
WebGPUParent* aParent, RawId aDeviceId, RawId aQueueId,
const ExternalTextureSourceDescriptor& aDesc,
- const layers::BufferDescriptor& aSd, Span<uint8_t> aBuffer) {
+ const layers::BufferDescriptor& aSd, uint8_t* aBuffer) {
const gfx::SurfaceFormat format =
layers::ImageDataSerializer::FormatFromBufferDescriptor(aSd);
// Creates a texture and view for a single plane, and writes the provided data
@@ -535,7 +534,7 @@ ExternalTextureSourceHost::CreateFromBufferDesc(
auto createPlane = [aParent, aDeviceId, aQueueId](
RawId texId, RawId viewId,
ffi::WGPUTextureFormat format, gfx::IntSize size,
- Span<uint8_t> buffer, uint32_t stride) {
+ uint8_t* buffer, uint32_t stride) {
const ffi::WGPUTextureDescriptor textureDesc{
.size =
ffi::WGPUExtent3d{
@@ -573,10 +572,9 @@ ExternalTextureSourceHost::CreateFromBufferDesc(
.bytes_per_row = &stride,
.rows_per_image = nullptr,
};
- const Span<uint8_t> slice = buffer.to(size.height * stride);
const ffi::WGPUFfiSlice_u8 data{
- .data = slice.data(),
- .length = slice.size(),
+ .data = buffer,
+ .length = size.height * stride,
};
{
ErrorBuffer error;
@@ -656,12 +654,12 @@ ExternalTextureSourceHost::CreateFromBufferDesc(
}
createPlane(aDesc.mTextureIds[0], aDesc.mViewIds[0], planeFormat, ySize,
- aBuffer.from(yCbCrDesc.yOffset()), yCbCrDesc.yStride());
+ aBuffer + yCbCrDesc.yOffset(), yCbCrDesc.yStride());
createPlane(aDesc.mTextureIds[1], aDesc.mViewIds[1], planeFormat,
- cbCrSize, aBuffer.from(yCbCrDesc.cbOffset()),
+ cbCrSize, aBuffer + yCbCrDesc.cbOffset(),
yCbCrDesc.cbCrStride());
createPlane(aDesc.mTextureIds[2], aDesc.mViewIds[2], planeFormat,
- cbCrSize, aBuffer.from(yCbCrDesc.crOffset()),
+ cbCrSize, aBuffer + yCbCrDesc.crOffset(),
yCbCrDesc.cbCrStride());
usedTextureIds.AppendElements(aDesc.mTextureIds.data(),
aDesc.mTextureIds.size());
diff --git a/dom/webgpu/ExternalTexture.h b/dom/webgpu/ExternalTexture.h
@@ -245,7 +245,7 @@ class ExternalTextureSourceHost {
static ExternalTextureSourceHost CreateFromBufferDesc(
WebGPUParent* aParent, RawId aDeviceId, RawId aQueueId,
const ExternalTextureSourceDescriptor& aDesc,
- const layers::BufferDescriptor& aSd, Span<uint8_t> aBuffer);
+ const layers::BufferDescriptor& aSd, uint8_t* aBuffer);
static ExternalTextureSourceHost CreateFromD3D10Desc(
WebGPUParent* aParent, RawId aDeviceId, RawId aQueueId,
const ExternalTextureSourceDescriptor& aDesc,