Commit db9c69ed by Jamie Madill Committed by Commit Bot

Make PackPixels take an angle::Format.

This removes the format type parameter from places where it isn't needed. It also removes the 'write color' functions map. This map was redundant with the angle::Format write function. Bug: angleproject:2729 Change-Id: I24e4548a89342237d7ed25180fea156fba51ccab Reviewed-on: https://chromium-review.googlesource.com/1142300 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent cd7cd2a8
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
"ANGLE format:src/libANGLE/renderer/angle_format_map.json": "ANGLE format:src/libANGLE/renderer/angle_format_map.json":
"ea6dfe3ebbc86e04f0d4b9f568ba22ae", "ea6dfe3ebbc86e04f0d4b9f568ba22ae",
"ANGLE format:src/libANGLE/renderer/gen_angle_format_table.py": "ANGLE format:src/libANGLE/renderer/gen_angle_format_table.py":
"68e7a56c323a44170656478f2bcc9ff8", "4b311db89dc5d3ed17c6e0f0e99260aa",
"ANGLE load functions table:src/libANGLE/renderer/gen_load_functions_table.py": "ANGLE load functions table:src/libANGLE/renderer/gen_load_functions_table.py":
"8afc7eecce2a3ba9f0b4beacb1aa7fe2", "8afc7eecce2a3ba9f0b4beacb1aa7fe2",
"ANGLE load functions table:src/libANGLE/renderer/load_functions_data.json": "ANGLE load functions table:src/libANGLE/renderer/load_functions_data.json":
......
...@@ -42,6 +42,8 @@ struct Format final : private angle::NonCopyable ...@@ -42,6 +42,8 @@ struct Format final : private angle::NonCopyable
constexpr bool hasDepthOrStencilBits() const; constexpr bool hasDepthOrStencilBits() const;
bool operator==(const Format &other) const { return this->id == other.id; }
FormatID id; FormatID id;
// The closest matching GL internal format for the storage this format uses. Note that this // The closest matching GL internal format for the storage this format uses. Note that this
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
namespace angle namespace angle
{ {
static constexpr rx::FastCopyFunctionMap::Entry BGRAEntry = {GL_RGBA, GL_UNSIGNED_BYTE, static constexpr rx::FastCopyFunctionMap::Entry BGRAEntry = {angle::FormatID::R8G8B8A8_UNORM,
CopyBGRA8ToRGBA8}; CopyBGRA8ToRGBA8};
static constexpr rx::FastCopyFunctionMap BGRACopyFunctions = {&BGRAEntry, 1}; static constexpr rx::FastCopyFunctionMap BGRACopyFunctions = {&BGRAEntry, 1};
static constexpr rx::FastCopyFunctionMap NoCopyFunctions; static constexpr rx::FastCopyFunctionMap NoCopyFunctions;
......
...@@ -139,30 +139,31 @@ gl::Error Framebuffer11::invalidateBase(const gl::Context *context, ...@@ -139,30 +139,31 @@ gl::Error Framebuffer11::invalidateBase(const gl::Context *context,
return gl::NoError(); return gl::NoError();
} }
bool foundDepth = false; bool foundDepth = false;
bool foundStencil = false; bool foundStencil = false;
for (size_t i = 0; i < count; ++i) for (size_t i = 0; i < count; ++i)
{ {
switch (attachments[i]) switch (attachments[i])
{ {
// Handle depth and stencil attachments. Defer discarding until later. // Handle depth and stencil attachments. Defer discarding until later.
case GL_DEPTH_STENCIL_ATTACHMENT: case GL_DEPTH_STENCIL_ATTACHMENT:
foundDepth = true; foundDepth = true;
foundStencil = true; foundStencil = true;
break; break;
case GL_DEPTH_EXT: case GL_DEPTH_EXT:
case GL_DEPTH_ATTACHMENT: case GL_DEPTH_ATTACHMENT:
foundDepth = true; foundDepth = true;
break; break;
case GL_STENCIL_EXT: case GL_STENCIL_EXT:
case GL_STENCIL_ATTACHMENT: case GL_STENCIL_ATTACHMENT:
foundStencil = true; foundStencil = true;
break; break;
default: default:
{ {
// Handle color attachments // Handle color attachments
ASSERT((attachments[i] >= GL_COLOR_ATTACHMENT0 && attachments[i] <= GL_COLOR_ATTACHMENT15) || ASSERT((attachments[i] >= GL_COLOR_ATTACHMENT0 &&
attachments[i] <= GL_COLOR_ATTACHMENT15) ||
(attachments[i] == GL_COLOR)); (attachments[i] == GL_COLOR));
size_t colorIndex = size_t colorIndex =
...@@ -178,14 +179,15 @@ gl::Error Framebuffer11::invalidateBase(const gl::Context *context, ...@@ -178,14 +179,15 @@ gl::Error Framebuffer11::invalidateBase(const gl::Context *context,
} }
} }
bool discardDepth = false; bool discardDepth = false;
bool discardStencil = false; bool discardStencil = false;
// The D3D11 renderer uses the same view for depth and stencil buffers, so we must be careful. // The D3D11 renderer uses the same view for depth and stencil buffers, so we must be careful.
if (useEXTBehavior) if (useEXTBehavior)
{ {
// In the extension, if the app discards only one of the depth and stencil attachments, but // In the extension, if the app discards only one of the depth and stencil attachments, but
// those are backed by the same packed_depth_stencil buffer, then both images become undefined. // those are backed by the same packed_depth_stencil buffer, then both images become
// undefined.
discardDepth = foundDepth; discardDepth = foundDepth;
// Don't bother discarding the stencil buffer if the depth buffer will already do it // Don't bother discarding the stencil buffer if the depth buffer will already do it
...@@ -195,8 +197,9 @@ gl::Error Framebuffer11::invalidateBase(const gl::Context *context, ...@@ -195,8 +197,9 @@ gl::Error Framebuffer11::invalidateBase(const gl::Context *context,
{ {
// In ES 3.0.4, if a specified attachment has base internal format DEPTH_STENCIL but the // In ES 3.0.4, if a specified attachment has base internal format DEPTH_STENCIL but the
// attachments list does not include DEPTH_STENCIL_ATTACHMENT or both DEPTH_ATTACHMENT and // attachments list does not include DEPTH_STENCIL_ATTACHMENT or both DEPTH_ATTACHMENT and
// STENCIL_ATTACHMENT, then only the specified portion of every pixel in the subregion of pixels // STENCIL_ATTACHMENT, then only the specified portion of every pixel in the subregion of
// of the DEPTH_STENCIL buffer may be invalidated, and the other portion must be preserved. // pixels of the DEPTH_STENCIL buffer may be invalidated, and the other portion must be
// preserved.
discardDepth = (foundDepth && foundStencil) || discardDepth = (foundDepth && foundStencil) ||
(foundDepth && (mState.getStencilAttachment() == nullptr)); (foundDepth && (mState.getStencilAttachment() == nullptr));
discardStencil = (foundStencil && (mState.getDepthAttachment() == nullptr)); discardStencil = (foundStencil && (mState.getDepthAttachment() == nullptr));
...@@ -257,8 +260,9 @@ gl::Error Framebuffer11::readPixelsImpl(const gl::Context *context, ...@@ -257,8 +260,9 @@ gl::Error Framebuffer11::readPixelsImpl(const gl::Context *context,
gl::Buffer *packBuffer = context->getGLState().getTargetBuffer(gl::BufferBinding::PixelPack); gl::Buffer *packBuffer = context->getGLState().getTargetBuffer(gl::BufferBinding::PixelPack);
if (packBuffer != nullptr) if (packBuffer != nullptr)
{ {
Buffer11 *packBufferStorage = GetImplAs<Buffer11>(packBuffer); Buffer11 *packBufferStorage = GetImplAs<Buffer11>(packBuffer);
PackPixelsParams packParams(area, format, type, static_cast<GLuint>(outputPitch), pack, const angle::Format &angleFormat = GetFormatFromFormatType(format, type);
PackPixelsParams packParams(area, angleFormat, static_cast<GLuint>(outputPitch), pack,
packBuffer, reinterpret_cast<ptrdiff_t>(pixels)); packBuffer, reinterpret_cast<ptrdiff_t>(pixels));
return packBufferStorage->packPixels(context, *readAttachment, packParams); return packBufferStorage->packPixels(context, *readAttachment, packParams);
...@@ -290,12 +294,12 @@ gl::Error Framebuffer11::blitImpl(const gl::Context *context, ...@@ -290,12 +294,12 @@ gl::Error Framebuffer11::blitImpl(const gl::Context *context,
const auto &colorAttachments = mState.getColorAttachments(); const auto &colorAttachments = mState.getColorAttachments();
const auto &drawBufferStates = mState.getDrawBufferStates(); const auto &drawBufferStates = mState.getDrawBufferStates();
for (size_t colorAttachment = 0; colorAttachment < colorAttachments.size(); colorAttachment++) for (size_t colorAttachment = 0; colorAttachment < colorAttachments.size();
colorAttachment++)
{ {
const gl::FramebufferAttachment &drawBuffer = colorAttachments[colorAttachment]; const gl::FramebufferAttachment &drawBuffer = colorAttachments[colorAttachment];
if (drawBuffer.isAttached() && if (drawBuffer.isAttached() && drawBufferStates[colorAttachment] != GL_NONE)
drawBufferStates[colorAttachment] != GL_NONE)
{ {
RenderTargetD3D *drawRenderTarget = nullptr; RenderTargetD3D *drawRenderTarget = nullptr;
ANGLE_TRY(drawBuffer.getRenderTarget(context, &drawRenderTarget)); ANGLE_TRY(drawBuffer.getRenderTarget(context, &drawRenderTarget));
...@@ -306,8 +310,8 @@ gl::Error Framebuffer11::blitImpl(const gl::Context *context, ...@@ -306,8 +310,8 @@ gl::Error Framebuffer11::blitImpl(const gl::Context *context,
if (invertColorSource) if (invertColorSource)
{ {
RenderTarget11 *readRenderTarget11 = GetAs<RenderTarget11>(readRenderTarget); RenderTarget11 *readRenderTarget11 = GetAs<RenderTarget11>(readRenderTarget);
actualSourceArea.y = readRenderTarget11->getHeight() - sourceArea.y; actualSourceArea.y = readRenderTarget11->getHeight() - sourceArea.y;
actualSourceArea.height = -sourceArea.height; actualSourceArea.height = -sourceArea.height;
} }
const bool invertColorDest = UsePresentPathFast(mRenderer, &drawBuffer); const bool invertColorDest = UsePresentPathFast(mRenderer, &drawBuffer);
...@@ -315,8 +319,8 @@ gl::Error Framebuffer11::blitImpl(const gl::Context *context, ...@@ -315,8 +319,8 @@ gl::Error Framebuffer11::blitImpl(const gl::Context *context,
if (invertColorDest) if (invertColorDest)
{ {
RenderTarget11 *drawRenderTarget11 = GetAs<RenderTarget11>(drawRenderTarget); RenderTarget11 *drawRenderTarget11 = GetAs<RenderTarget11>(drawRenderTarget);
actualDestArea.y = drawRenderTarget11->getHeight() - destArea.y; actualDestArea.y = drawRenderTarget11->getHeight() - destArea.y;
actualDestArea.height = -destArea.height; actualDestArea.height = -destArea.height;
} }
ANGLE_TRY(mRenderer->blitRenderbufferRect( ANGLE_TRY(mRenderer->blitRenderbufferRect(
......
...@@ -3119,10 +3119,11 @@ gl::Error Renderer11::readFromAttachment(const gl::Context *context, ...@@ -3119,10 +3119,11 @@ gl::Error Renderer11::readFromAttachment(const gl::Context *context,
mDeviceContext->CopySubresourceRegion(stagingHelper.get(), 0, 0, 0, 0, srcTexture->get(), mDeviceContext->CopySubresourceRegion(stagingHelper.get(), 0, 0, 0, 0, srcTexture->get(),
sourceSubResource, &srcBox); sourceSubResource, &srcBox);
const angle::Format &angleFormat = GetFormatFromFormatType(format, type);
gl::Buffer *packBuffer = context->getGLState().getTargetBuffer(gl::BufferBinding::PixelPack); gl::Buffer *packBuffer = context->getGLState().getTargetBuffer(gl::BufferBinding::PixelPack);
if (!invertTexture) if (!invertTexture)
{ {
PackPixelsParams packParams(safeArea, format, type, outputPitch, pack, packBuffer, 0); PackPixelsParams packParams(safeArea, angleFormat, outputPitch, pack, packBuffer, 0);
return packPixels(stagingHelper, packParams, pixelsOut); return packPixels(stagingHelper, packParams, pixelsOut);
} }
...@@ -3134,7 +3135,7 @@ gl::Error Renderer11::readFromAttachment(const gl::Context *context, ...@@ -3134,7 +3135,7 @@ gl::Error Renderer11::readFromAttachment(const gl::Context *context,
invertTexturePack.alignment = pack.alignment; invertTexturePack.alignment = pack.alignment;
invertTexturePack.reverseRowOrder = !pack.reverseRowOrder; invertTexturePack.reverseRowOrder = !pack.reverseRowOrder;
PackPixelsParams packParams(safeArea, format, type, outputPitch, invertTexturePack, packBuffer, PackPixelsParams packParams(safeArea, angleFormat, outputPitch, invertTexturePack, packBuffer,
0); 0);
gl::Error error = packPixels(stagingHelper, packParams, pixelsOut); gl::Error error = packPixels(stagingHelper, packParams, pixelsOut);
ANGLE_TRY(error); ANGLE_TRY(error);
......
...@@ -188,6 +188,7 @@ gl::Error Framebuffer9::readPixelsImpl(const gl::Context *context, ...@@ -188,6 +188,7 @@ gl::Error Framebuffer9::readPixelsImpl(const gl::Context *context,
int inputPitch = lock.Pitch; int inputPitch = lock.Pitch;
const d3d9::D3DFormat &d3dFormatInfo = d3d9::GetD3DFormatInfo(desc.Format); const d3d9::D3DFormat &d3dFormatInfo = d3d9::GetD3DFormatInfo(desc.Format);
gl::FormatType formatType(format, type); gl::FormatType formatType(format, type);
PackPixelsParams packParams; PackPixelsParams packParams;
...@@ -195,8 +196,7 @@ gl::Error Framebuffer9::readPixelsImpl(const gl::Context *context, ...@@ -195,8 +196,7 @@ gl::Error Framebuffer9::readPixelsImpl(const gl::Context *context,
packParams.area.y = rect.top; packParams.area.y = rect.top;
packParams.area.width = rect.right - rect.left; packParams.area.width = rect.right - rect.left;
packParams.area.height = rect.bottom - rect.top; packParams.area.height = rect.bottom - rect.top;
packParams.format = format; packParams.destFormat = &GetFormatFromFormatType(format, type);
packParams.type = type;
packParams.outputPitch = static_cast<GLuint>(outputPitch); packParams.outputPitch = static_cast<GLuint>(outputPitch);
packParams.pack = pack; packParams.pack = pack;
......
...@@ -1004,7 +1004,7 @@ gl::Error Renderer9::setTexture(const gl::Context *context, ...@@ -1004,7 +1004,7 @@ gl::Error Renderer9::setTexture(const gl::Context *context,
gl::Texture *texture) gl::Texture *texture)
{ {
int d3dSamplerOffset = (type == gl::ShaderType::Fragment) ? 0 : D3DVERTEXTEXTURESAMPLER0; int d3dSamplerOffset = (type == gl::ShaderType::Fragment) ? 0 : D3DVERTEXTEXTURESAMPLER0;
int d3dSampler = index + d3dSamplerOffset; int d3dSampler = index + d3dSamplerOffset;
IDirect3DBaseTexture9 *d3dTexture = nullptr; IDirect3DBaseTexture9 *d3dTexture = nullptr;
bool forceSetTexture = false; bool forceSetTexture = false;
......
...@@ -56,7 +56,7 @@ template_autogen_inl = """// GENERATED FILE - DO NOT EDIT. ...@@ -56,7 +56,7 @@ template_autogen_inl = """// GENERATED FILE - DO NOT EDIT.
namespace angle namespace angle
{{ {{
static constexpr rx::FastCopyFunctionMap::Entry BGRAEntry = {{GL_RGBA, GL_UNSIGNED_BYTE, static constexpr rx::FastCopyFunctionMap::Entry BGRAEntry = {{angle::FormatID::R8G8B8A8_UNORM,
CopyBGRA8ToRGBA8}}; CopyBGRA8ToRGBA8}};
static constexpr rx::FastCopyFunctionMap BGRACopyFunctions = {{&BGRAEntry, 1}}; static constexpr rx::FastCopyFunctionMap BGRACopyFunctions = {{&BGRAEntry, 1}};
static constexpr rx::FastCopyFunctionMap NoCopyFunctions; static constexpr rx::FastCopyFunctionMap NoCopyFunctions;
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
namespace angle namespace angle
{ {
struct Format; struct Format;
enum class FormatID;
} // namespace angle } // namespace angle
namespace gl namespace gl
...@@ -130,8 +131,7 @@ class FastCopyFunctionMap ...@@ -130,8 +131,7 @@ class FastCopyFunctionMap
public: public:
struct Entry struct Entry
{ {
GLenum format; angle::FormatID formatID;
GLenum type;
ColorCopyFunction func; ColorCopyFunction func;
}; };
...@@ -139,8 +139,8 @@ class FastCopyFunctionMap ...@@ -139,8 +139,8 @@ class FastCopyFunctionMap
constexpr FastCopyFunctionMap(const Entry *data, size_t size) : mSize(size), mData(data) {} constexpr FastCopyFunctionMap(const Entry *data, size_t size) : mSize(size), mData(data) {}
bool has(const gl::FormatType &formatType) const; bool has(angle::FormatID formatID) const;
ColorCopyFunction get(const gl::FormatType &formatType) const; ColorCopyFunction get(angle::FormatID formatID) const;
private: private:
size_t mSize; size_t mSize;
...@@ -151,16 +151,14 @@ struct PackPixelsParams ...@@ -151,16 +151,14 @@ struct PackPixelsParams
{ {
PackPixelsParams(); PackPixelsParams();
PackPixelsParams(const gl::Rectangle &area, PackPixelsParams(const gl::Rectangle &area,
GLenum format, const angle::Format &destFormat,
GLenum type,
GLuint outputPitch, GLuint outputPitch,
const gl::PixelPackState &pack, const gl::PixelPackState &pack,
gl::Buffer *packBufferIn, gl::Buffer *packBufferIn,
ptrdiff_t offset); ptrdiff_t offset);
gl::Rectangle area; gl::Rectangle area;
GLenum format; const angle::Format *destFormat;
GLenum type;
GLuint outputPitch; GLuint outputPitch;
gl::Buffer *packBuffer; gl::Buffer *packBuffer;
gl::PixelPackState pack; gl::PixelPackState pack;
...@@ -173,10 +171,6 @@ void PackPixels(const PackPixelsParams &params, ...@@ -173,10 +171,6 @@ void PackPixels(const PackPixelsParams &params,
const uint8_t *source, const uint8_t *source,
uint8_t *destination); uint8_t *destination);
ColorWriteFunction GetColorWriteFunction(const gl::FormatType &formatType);
ColorCopyFunction GetFastCopyFunction(const FastCopyFunctionMap &fastCopyFunctions,
const gl::FormatType &formatType);
using InitializeTextureDataFunction = void (*)(size_t width, using InitializeTextureDataFunction = void (*)(size_t width,
size_t height, size_t height,
size_t depth, size_t depth,
...@@ -274,6 +268,7 @@ void GetMatrixUniform(GLenum type, GLfloat *dataOut, const GLfloat *source, bool ...@@ -274,6 +268,7 @@ void GetMatrixUniform(GLenum type, GLfloat *dataOut, const GLfloat *source, bool
template <typename NonFloatT> template <typename NonFloatT>
void GetMatrixUniform(GLenum type, NonFloatT *dataOut, const NonFloatT *source, bool transpose); void GetMatrixUniform(GLenum type, NonFloatT *dataOut, const NonFloatT *source, bool transpose);
const angle::Format &GetFormatFromFormatType(GLenum format, GLenum type);
} // namespace rx } // namespace rx
#endif // LIBANGLE_RENDERER_RENDERER_UTILS_H_ #endif // LIBANGLE_RENDERER_RENDERER_UTILS_H_
...@@ -344,13 +344,10 @@ gl::Error FramebufferVk::readPixels(const gl::Context *context, ...@@ -344,13 +344,10 @@ gl::Error FramebufferVk::readPixels(const gl::Context *context,
outputSkipBytes += (clippedArea.x - area.x) * sizedFormatInfo.pixelBytes + outputSkipBytes += (clippedArea.x - area.x) * sizedFormatInfo.pixelBytes +
(clippedArea.y - area.y) * outputPitch; (clippedArea.y - area.y) * outputPitch;
PackPixelsParams params; const angle::Format &angleFormat = GetFormatFromFormatType(format, type);
params.area = flippedArea;
params.format = format; PackPixelsParams params(flippedArea, angleFormat, outputPitch, packState,
params.type = type; glState.getTargetBuffer(gl::BufferBinding::PixelPack), 0);
params.outputPitch = outputPitch;
params.packBuffer = glState.getTargetBuffer(gl::BufferBinding::PixelPack);
params.pack = packState;
ANGLE_TRY(readPixelsImpl(contextVk, flippedArea, params, VK_IMAGE_ASPECT_COLOR_BIT, ANGLE_TRY(readPixelsImpl(contextVk, flippedArea, params, VK_IMAGE_ASPECT_COLOR_BIT,
getColorReadRenderTarget(), getColorReadRenderTarget(),
...@@ -408,8 +405,6 @@ angle::Result FramebufferVk::blitWithReadback(ContextVk *contextVk, ...@@ -408,8 +405,6 @@ angle::Result FramebufferVk::blitWithReadback(ContextVk *contextVk,
vk::ImageHelper *imageForRead = readRenderTarget->getImageForRead( vk::ImageHelper *imageForRead = readRenderTarget->getImageForRead(
this, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, commandBuffer); this, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, commandBuffer);
const angle::Format &drawFormat = drawRenderTarget->getImageFormat().angleFormat(); const angle::Format &drawFormat = drawRenderTarget->getImageFormat().angleFormat();
const gl::InternalFormat &sizedInternalDrawFormat =
gl::GetSizedInternalFormatInfo(drawFormat.glInternalFormat);
GLuint outputPitch = 0; GLuint outputPitch = 0;
...@@ -429,8 +424,7 @@ angle::Result FramebufferVk::blitWithReadback(ContextVk *contextVk, ...@@ -429,8 +424,7 @@ angle::Result FramebufferVk::blitWithReadback(ContextVk *contextVk,
PackPixelsParams packPixelsParams; PackPixelsParams packPixelsParams;
packPixelsParams.pack.alignment = 1; packPixelsParams.pack.alignment = 1;
packPixelsParams.pack.reverseRowOrder = true; packPixelsParams.pack.reverseRowOrder = true;
packPixelsParams.type = sizedInternalDrawFormat.type; packPixelsParams.destFormat = &drawFormat;
packPixelsParams.format = sizedInternalDrawFormat.format;
packPixelsParams.area.height = copyArea.height; packPixelsParams.area.height = copyArea.height;
packPixelsParams.area.width = copyArea.width; packPixelsParams.area.width = copyArea.width;
packPixelsParams.area.x = copyArea.x; packPixelsParams.area.x = copyArea.x;
......
...@@ -215,13 +215,10 @@ angle::Result PixelBuffer::stageSubresourceUpdateFromFramebuffer( ...@@ -215,13 +215,10 @@ angle::Result PixelBuffer::stageSubresourceUpdateFromFramebuffer(
pixelPackState.reverseRowOrder = !pixelPackState.reverseRowOrder; pixelPackState.reverseRowOrder = !pixelPackState.reverseRowOrder;
} }
PackPixelsParams params; const angle::Format &copyFormat =
params.area = clippedRectangle; GetFormatFromFormatType(formatInfo.internalFormat, formatInfo.type);
params.format = formatInfo.format; PackPixelsParams params(clippedRectangle, copyFormat, static_cast<GLuint>(outputRowPitch),
params.type = formatInfo.type; pixelPackState, nullptr, 0);
params.outputPitch = static_cast<GLuint>(outputRowPitch);
params.packBuffer = nullptr;
params.pack = pixelPackState;
// 2- copy the source image region to the pixel buffer using a cpu readback // 2- copy the source image region to the pixel buffer using a cpu readback
if (loadFunction.requiresConversion) if (loadFunction.requiresConversion)
......
...@@ -593,10 +593,10 @@ void Format::initialize(VkPhysicalDevice physicalDevice, const angle::Format &an ...@@ -593,10 +593,10 @@ void Format::initialize(VkPhysicalDevice physicalDevice, const angle::Format &an
case angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK: case angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK:
internalFormat = GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2; internalFormat = GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;
textureFormatID = angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK; textureFormatID = angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK;
vkTextureFormat = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK; vkTextureFormat = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
textureInitializerFunction = Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>; textureInitializerFunction = Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>;
bufferFormatID = angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK; bufferFormatID = angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK;
vkBufferFormat = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK; vkBufferFormat = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
vertexLoadFunction = CopyNativeVertexData<GLubyte, 4, 4, 0>; vertexLoadFunction = CopyNativeVertexData<GLubyte, 4, 4, 0>;
vertexLoadRequiresConversion = false; vertexLoadRequiresConversion = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment