|
ad7ee7fa
|
2025-09-08T11:53:57
|
|
Fix RGB565/BGR565 loading functions
The BGR565-related loading functions seem to have been defined based
on D3D11, especially since D3D11 only has format support for B5G6R5.
However, if other backends, such as Vulkan, try to use BGR565, the
loading functions do not work as intended.
This change aims to correct the loading functions in order to have a
single loading methodology for all backends, and to prepare for the
future changes that allow the proper usage of B5G6R5 for Vulkan.
* Updated the component order in the loading functions related to
RGB565 and BGR565.
* Updated D3D function map and data related to BGR565 for consistency.
* Reverted the PackPixels() exception for RGB565 in Renderer11.
* Fixed typo in D3D format data.
Bug: b/441803462
Bug: b/409867243
Change-Id: I4d3e497a9435bd65bdf64b527b094267a0353cb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6916353
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
cdcf6a63
|
2025-04-22T10:19:33
|
|
Add R10X6G10X6B10X6A10X6 support on angle
Bug: angleproject:409355677
Change-Id: I8115ca73a038360f673552532e9d9b87ff846867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6438114
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
36f41997
|
2023-10-30T15:14:09
|
|
D3D11: CopySubTexture: Handle sRGB source with D3D11
Use typeless formats for sRGB textures that can be reinterpreted as
linear. Add a parameter to SRV creation to request samplers that
do not do sRGB for copying sRGB textures.
Bug: angleproject:7907
Change-Id: I3d94dfa5b25a1c2c531cd9bef4247097aa4bfb61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4986290
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
519d330c
|
2023-08-28T15:41:18
|
|
Add GL_RGBX8_SRGB_ANGLEX and GL_BGRX8_SRGB_ANGLEX formats
If app creates AHB with sRGBX format, and then create a EGLImage,
Image::initialize() will retrieve the sized format from AHB, which is
GL_RGBX_ANGLE, and then try to convert to sRGB color space. The bug here
is that GetNonLinearFormat will pick GL_SRGB8 for all these formats
:GL_RGB8, GL_BGRX8_ANGLEX, GL_RGBX8_ANGLE. This means that different
AHBS with these three different format will end up createing a tetxure
with same format which sRGB. I think the reason somone did it this way
initially simply because there is no sRGB corresponding format available
for BGRX8 and RGBX8. This CL adds sRGB internal version of these two
formats, thus make it straight forward to pick the correct sRGB format.
The other change here is for AHBs, right now we are always force
mRequiredImageAccess to be Renderable. This actually workedaround the
bug that mentioned earlier that we are picking the wrong format. Because
of forced renderable, we end up with SRGB fallback to SRGBA. But
external images should not fallback, we should use its existing format
as is since it can be accessed via AHB interface directly.
Bug: b/298037344
Change-Id: I6119c4015cc5bf0effdf0530cb756b6c4656c38f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4819053
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b26b01a2
|
2023-03-09T00:00:00
|
|
Implement EXT_render_snorm
Bug: angleproject:8048
Change-Id: Id01beaea9565f8ab374c732fef70ec0ac0d8743e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4334303
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
3f59c285
|
2022-07-12T17:29:36
|
|
D3D11: implement image load/store format reinterpretation.
Reinterpretation requires all UAV textures to be in a TYPELESS
format. Implement an ensureUnorderedAccess() that converts the
texture's storage to one with the D3D11_BIND_UNORDERED_ACCESS
flag, which, prior to this change, was set unconditionally for
all textures in an >= ES 3.1 context. If this flag is set at
D3D texture creation time, use the appropriate TYPELESS format.
Implementation uses a BindFlags struct, which subsumes the
existing renderTarget for clarity. Factor out the relevant bits
of ensureRenderTarget() into an ensureBindFlags() helper function,
and make ensureRenderTarget() and ensureUnorderedAccess() wrappers
around it.
Add the corresponding typeless formats to the texture format table.
Bug: angleproject:7501, angleproject:7520
Change-Id: Id21b9db3229aceca121da6ba6507704417034ec4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780588
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
6c0d4658
|
2022-05-27T15:32:42
|
|
D3D11: implement stencil texturing.
When GL_DEPTH_STENCIL_TEXTURE_MODE is set to GL_STENCIL_INDEX, GL
requires the stencil value to be in the R component. However, when
sampling a depth24stencil8 texture in D3D11, the stencil ends up in the
G component. So in this mode, swizzle the result from G to R.
In order to sample stencil, use the appropriate stencil-only format
for the SRV: X24_TYPELESS_G8_UINT for d24s8, X32_TYPELESS_G8X24_UINT
for d32fs8. This required adding a new field to D3D11 Format.
Bug: angleproject:7303
Change-Id: I7cf70efaaf6c833fa0b2497e4080618dfd7103ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679485
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ef65edf2
|
2021-11-22T14:23:35
|
|
Add extension: ANGLE_rgbx_internal_format
Add the extension ANGLE_rgbx_internal_format, which exposes the ANGLE
internal format GL_RGBX8_ANGLE. The format GL_RGBX8_ANGLE enables
emulating RGB8 formats with RGBA8 within ANGLE.
This also renames the format GL_RGBX8_ANGLEX to GL_RGBX8_ANGLE, since
it's being exposed.
Bug: angleproject:6690
Test: Texture2DTestES3.TextureRGBXImplicitAlpha1
Change-Id: I5548a3578a14e2f2a4006bbf59983b01f694b7f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296625
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c0aa6108
|
2021-09-17T16:22:55
|
|
Add new GL_RGBX8_ANGLEX format
Currently, IOSurface objects using {GL_RGB, GL_UNSIGNED_BYTE}
are natively represented with GL_BGRX8_ANGLEX, which we use
instead of other RGBA formats in order to avoid issues when
a canvas uses 'no alpha':
https://source.chromium.org/chromium/chromium/src/+/main:third_party/swiftshader/third_party/angle/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm;l=44
This unfortunately causes some other issues because of the
implicit RGB <-> BGR conversion like type mismatches in
subresource updates. This CL adds a new type, RGBX8, which
will be usable by IOSurface objects and which behaves exactly
like the BGRX8 format with the B and R channels flipped.
Bug: chromium:1209250
Change-Id: I345eadc8addd05a0964cae30d89c20005479e37b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188910
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
f2b47418
|
2021-04-22T18:32:37
|
|
Align BPTC format names in angle::FormatID
Use the same naming convention as other similar formats.
Bug: angleproject:5731
Change-Id: I187881f4bc4691a0963502ed41f42ab0ebf4171c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2846824
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
5ee3826e
|
2021-04-01T16:23:27
|
|
Support GL_EXT_texture_type_2_10_10_10_REV on D3D backend
Bug: angleproject:5817
Change-Id: Ie572a252946f87d125f9074f2144928bb43d78b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802861
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
|
|
49108a12
|
2020-06-30T11:53:23
|
|
Support BGRA_1010102 IOSurfaces in CGL and Vulkan.
Bug: chromium:1100599
Change-Id: I7bc2c2e35490e28e9f6fe8f2e0c26cdea50650b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2275731
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
58fc8b11
|
2020-01-31T19:03:12
|
|
Implement RGTC (BC4, BC5) compressed texture formats
gl.xml was modified as two enums were missing from their proper group.
dxgi_support_data.json was fixed to not expect BC4 and BC5 on FL9_3
Bug: angleproject:3149
Change-Id: Ieb97a8cf8e92258c1b44e090e823fac227997174
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033068
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
2db5082b
|
2018-12-17T14:27:18
|
|
Add UAV format for GL_RGBA8I
GL_RGBA8I is a supported image unit format, add
its corresponding UAV format on D3D backend.
Bug: angleproject:1987
TEST=dEQP.GLES31/functional_image_load_store_2d_store_rgba8i
dEQP.GLES31/functional_image_load_store_2d_load_store_rgba8i
Change-Id: Ib759f873c8629a644f85784a57ce141d3018e0c1
Reviewed-on: https://chromium-review.googlesource.com/c/1378888
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
|
|
f2ed2995
|
2018-10-04T13:54:42
|
|
Add support for EXT_texture_compression_bptc
After validation, the enums are simply forwarded to the native
drivers. The BPTC formats are supported on both OpenGL and D3D.
The included test coverage covers the API quite well, but only has
basic coverage for correct decoding of texture data. More coverage for
texture data could be added later.
BUG=angleproject:2869
TEST=angle_end2end_tests
Change-Id: I3de37972dcf13c6fa3fc1bc429a2627523a4a082
Reviewed-on: https://chromium-review.googlesource.com/c/1261675
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
cb8a921b
|
2018-06-28T12:30:36
|
|
Vulkan: Support RGB/BGR backbuffers emulated on RGBA/BGRA.
BUG=angleproject:2692
BUG=angleproject:2523
BUG=angleproject:2715
BUG=angleproject:2716
Change-Id: I538b385f8b66fb97e176953b0fc4a6299849c005
Reviewed-on: https://chromium-review.googlesource.com/1118713
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Luc Ferron <lucferron@chromium.org>
|
|
d66e1939
|
2018-01-17T11:36:24
|
|
Allow creating EGL pbuffers from typeless D3D textures
A new extension EGL_ANGLE_d3d_typeless_texture_client_buffer is added
that allows creating EGL pbuffers from typeless D3D textures.
The extension increases the flexibility of the API compared to plain
EGL_ANGLE_D3D_texture_client_buffer. The colorspace for the created
EGL pbuffer can be set by using the EGL_GL_COLORSPACE attribute.
Internally this sets the ANGLE format of the buffer. There are new
ANGLE formats that are used specifically for typeless textures,
separate ones for SRGB and linear views into the D3D textures.
The extension is only supported on the D3D11 backend of ANGLE.
BUG=angleproject:2300
TEST=angle_white_box_tests
Change-Id: I6a6cb873d2cc0dca0b7f18a0f2cd35e7bafcb7d8
Reviewed-on: https://chromium-review.googlesource.com/873917
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
26143fdd
|
2017-11-01T18:19:05
|
|
ES31: Support bindImageTexture on Texture2D for compute shaders on D3D
BUG=angleproject:1987
TEST=angle_end2end_tests
Change-Id: I3b0afb441a41dbd7f204b1d1bba7884c8d203ce1
Reviewed-on: https://chromium-review.googlesource.com/749004
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
935cb7c5
|
2017-11-08T15:53:41
|
|
Support B8G8R8A8_UNORM_SRGB as D3D11 texture format
Support B8G8R8A8_UNORM_SRGB as D3D11 texture format.
BUG=angleproject:2172
Change-Id: I2f15a55123601735d7fc6caa40bb056243a91b44
Reviewed-on: https://chromium-review.googlesource.com/758600
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
02f075c8
|
2016-12-22T14:55:46
|
|
Support EXT_texture_compression_s3tc_srgb on DX11
Also passes WEBGL_compressed_texture_s3tc_srgb conformance on WebGL 1/2 on DX11
BUG=angleproject:1553
BUG=chromium:630498
Change-Id: If1d17b54b1e8b998410079fd217626410015d7f1
Reviewed-on: https://chromium-review.googlesource.com/422585
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c99518fc
|
2016-08-09T11:10:38
|
|
Move default ANGLE format map to shared location.
This default format mapping serves as a base for a Renderer format
mapping. Any formats that require emulation or other representation
in a Renderer can be overridden in the renderer layer.
BUG=angleproject:1455
Change-Id: I47f070c2ea132bada9cc0fc4353b89b74b8ee8f3
Reviewed-on: https://chromium-review.googlesource.com/367692
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c98cd326
|
2016-08-09T11:10:33
|
|
D3D11: Merge d3d11::TextureFormat and ANGLEFormatSet.
BUG=angleproject:1455
Change-Id: I7fc2640ec9d73528feb526b4d8b89cabccda4d17
Reviewed-on: https://chromium-review.googlesource.com/367092
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
e5922891
|
2016-08-09T11:10:32
|
|
D3D11: Partially squash D3D11 format types.
d3d11::TextureFormat and d3d11::FormatSet don't really do different
things, so it would be best to merge them.
BUG=angleproject:1455
Change-Id: I8c09ae763e4cb284bb611fed9d74b9048fb9f13e
Reviewed-on: https://chromium-review.googlesource.com/367091
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a5b1561e
|
2016-08-09T11:10:27
|
|
Place format info in angle::Format.
Some bits of information, like the copy functions and mipmap gen
functions, can be shared across back-ends in the angle::Format
class.
Also name the info struct angle::Format, and use an enum class
angle::Format::ID to identify the particular format.
This patch introduces a new table generator for angle formats
and updates the D3D11 generator accordingly.
BUG=angleproject:1455
Change-Id: I13b8b98822b1186c6a9e436dc232c18fef50980c
Reviewed-on: https://chromium-review.googlesource.com/365824
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
20f69ce5
|
2016-08-09T11:10:26
|
|
Introduce angle::Format enum.
This general enum can encapsulate different formats between
GL/Vulkan/D3D9/D3D11/etc so we can use them in common routines like
PackPixels. It also can help us get rid of the ANGLEX enums which
we use to represent internal formats not present in GL.
It is currently used for Textures/Renderbuffers/Surfaces, but can
also be extended in the future to cover things like vertex formats.
It mirrors something like a DXGI_FORMAT in D3D11 or VkFormat.
BUG=angleproject:1455
Change-Id: I467d7b36d8fc92bb45239d56b9243d06f4e29378
Reviewed-on: https://chromium-review.googlesource.com/365413
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
43341b7a
|
2016-08-03T14:10:03
|
|
D3D11: Merge FL10 and 9_3 ANGLE formats.
This will let us use ANGLE formats to describe a format layout rather
than a Renderer-specific usage. This in turn will let us use ANGLE
formats for other Renderers, as a universal thing.
BUG=angleproject:1455
Change-Id: I56492cb809d4ef6ac4b962cb12affbc853bbdaa0
Reviewed-on: https://chromium-review.googlesource.com/365269
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6bbdce5b
|
2016-08-02T12:32:00
|
|
D3D11: Remove X24G8 special format.
This special format means we're using a depth/stencil format with only
the stencil channel being used. We can just use a normal D24S8 format
here, there's pretty much no difference.
BUG=angleproject:1455
Change-Id: Id304094b92814f38930209a703733190ad8e8410
Reviewed-on: https://chromium-review.googlesource.com/359086
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7a074768
|
2016-08-02T12:31:59
|
|
D3D11: Remove 'non-renderable' texture formats.
The only difference between the NONRENDERABLE and normal versions of
the formats is the rtvFormat is blank for non-renderable. The only
place that I can see we check rtvFormat to make a decision is in
TextureStorage11::GetTextureBindFlags. The rtvFormat here isn't
necessary because we also check the 'renderTarget' flag, which won't
be true for compressed formats at any time.
BUG=angleproject:1455
Change-Id: Icbb438d336e67b80c44a0ab8de995a32b92e451e
Reviewed-on: https://chromium-review.googlesource.com/359085
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ec0b580d
|
2016-07-04T13:11:59
|
|
Re-land "D3D11: Fix readback of BGRA-backed formats."
For some BGRA-backed formats (RGBA4, R5G6B5, RGB5A1), our ReadPixels
implementation wasn't aware the BGRA format didn't exactly match the
RGBA format. For these it would do the 'fast path' memcpy method, when
it should stop and do the slow pixel-by-pixel packing method.
Fixes conformance2/reading/read-pixels-from-fbo-test.html.
Reland: fix empty format info that was causing us to only see the
first pixel in the FBO in a ReadPixels call. Also fix bugs in the
unorm 16-bit format readback code, and add ASSERTs to catch bugs in
subsequent new formats.
BUG=angleproject:1407
BUG=chromium:616176
Change-Id: I9fd55b9e1dd6a306eb4db195d775c02a1eb1f93f
Reviewed-on: https://chromium-review.googlesource.com/357132
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
73d417ed
|
2016-06-17T00:49:40
|
|
Revert "D3D11: Fix readback of BGRA-backed formats."
This reverts commit 230d95616d1309914a6703e27a797a440806dd02.
This broke GLES2ConformTest.GL2Tests_framebuffer_objects_input_run on the NVIDIA Win8 Chromium bots.
BUG=chromium:620908
Change-Id: Idf6e3eb51483ff0b6bc758b95c5910863ddfc25f
Reviewed-on: https://chromium-review.googlesource.com/353394
Reviewed-by: John Bauman <jbauman@chromium.org>
Commit-Queue: John Bauman <jbauman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
230d9561
|
2016-06-15T18:11:52
|
|
D3D11: Fix readback of BGRA-backed formats.
For some BGRA-backed formats (RGBA4, R5G6B5, RGB5A1), our ReadPixels
implementation wasn't aware the BGRA format didn't exactly match the
RGBA format. For these it would do the 'fast path' memcpy method, when
it should stop and do the slow pixel-by-pixel packing method.
BUG=angleproject:1407
BUG=chromium:616176
Change-Id: Ie24758513af6f9ef87f0aa503135456c96493701
Reviewed-on: https://chromium-review.googlesource.com/352252
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
25ab4510
|
2016-05-13T18:13:59
|
|
Implement GL_EXT_texture_norm16 extension
BUG=angleproject:1365
Change-Id: I972b156ecb41ff44bc1f6365373ab386bacc85f1
Reviewed-on: https://chromium-review.googlesource.com/346530
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9cb1df4f
|
2016-02-25T16:16:41
|
|
D3D11: Get mip generation function from ANGLE format
This is done to make it possible to change some of the DXGI formats
of integer textures without affecting their mip generation function
associations.
BUG=angleproject:1244
TEST=angle_end2end_tests,
dEQP-GLES3.functional.texture.mipmap.*generate* (all pass)
Change-Id: Ie83dd0e1883e9d8e267fbd4bf54b1e466fb0b210
Reviewed-on: https://chromium-review.googlesource.com/328963
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
f706901e
|
2016-02-24T15:14:01
|
|
D3D11: Associate ANGLE formats with GL internal formats
Add a corresponding GL internal format to ANGLE format set. This is
one step on the way to removing the problematic DXGI format to GL
format mapping. This will also make it possible to stop storing the
DXGIFormat field in RenderTarget11. The DXGIFormat field in
RenderTarget11 can currently carry either the DSV format, the RTV
format or the texture storage format of the resource it is managing,
which makes code using it hard to understand.
Also fills in missing componentType for some compressed ANGLE formats
in texture_format_data.json.
BUG=angleproject:1244
TEST=angle_end2end_tests
Change-Id: I87eedca8736aeface3fa6a0ec3c9d355cf006b24
Reviewed-on: https://chromium-review.googlesource.com/328961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
bc49758c
|
2016-02-23T14:43:19
|
|
Choose D3D11 swizzle formats in gen_texture_format_table.py
Making swizzle format data come from the ANGLE format table will make
it easier to make changes that affect both swizzle formats and regular
texture formats. Swizzle format is now specified manually for some
tricky formats, but for most it can be determined automatically from
the ANGLE texture format info.
The ANGLE texture format info in texture_format_table.json is changed
to facilitate this. The componentType field now captures only whether
the data is normalized, int or float and its signedness, but not the
width of the data type. Bit widths of the individual channels are
recorded in a separate "bits" object for each ANGLE format entry.
Also, a new 16-bit RGBA UNORM ANGLE format is added to support
swizzling 16-bit normalized depth formats.
This change is mostly just refactoring, but it fixes swizzling for
formats which have less bits for alpha than other channels:
- RGB10_A2
- RGB10_A2UI
- RGB5_A1
BUG=angleproject:1322
BUG=angleproject:1244
TEST=angle_end2end_tests,
dEQP-GLES3.functional.texture.swizzle.* (all pass)
Change-Id: I87d8a9cc0b6569191f50c41754d77b20ca6afef9
Reviewed-on: https://chromium-review.googlesource.com/329074
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6ee394a1
|
2016-02-18T13:30:09
|
|
Add initializer function to more texture formats
All GL RGB formats that ANGLE stores as RGBA formats under the covers
need to have their alpha channel set to 1. See GLES 3.0.4 table 3.24
for the relevant spec. In some cases, this is handled by the
dataInitializerFunction associated with the format. Previously, some
texture formats had the function set correctly, but not all.
Associating formats with the datainitializerFormat is now a
responsibility of the gen_texture_format_table.py script. The new
automation there makes sure that all GL RGB formats emulated with
RGBA formats get a data initializer function.
Tests are added in end2end_tests for most of the RGB formats.
BUG=angleproject:1318
TEST=angle_end2end_tests
Change-Id: Iad860357f33d87c625445ea6c58a53af47e0b547
Reviewed-on: https://chromium-review.googlesource.com/328253
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
a615852d
|
2016-02-17T15:39:34
|
|
Split texture_format_data.json into two files
After this change, texture_format_map.json maps the GL internal formats
to an enumeration of formats that is internal to ANGLE.
Each ANGLE format specifies a unique combination of DXGI formats and
what type of data the format contains. In the future, the ANGLE format
could be used instead of DXGI format inside C++ code to identify which
type of data a resource contains. This becomes useful when a GL format is
associated with multiple DXGI formats, which may have different type
information (for example depth vs. red, integer vs. float).
texture_format_data.json is changed to only store data on these ANGLE
formats.
BUG=angleproject:1318
BUG=angleproject:1244
TEST=gen_texture_format_table.py (no changes in autogenerated file)
Change-Id: I729c4a4d6fc66ee61598ef2d879e6785c85d40ab
Reviewed-on: https://chromium-review.googlesource.com/328251
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
e3939b98
|
2015-12-01T15:36:51
|
|
D3D11: Transcode ETC1 to BC1.
Adds a new extension to allow transcode ETC formats to suitable BC formats.
This commit implements ETC1 to BC1. More formats will be supported soon.
BUG=angleproject:1285
Change-Id: Iacbfbc2248dfe1aebf24b92696249a9404e331cd
Reviewed-on: https://chromium-review.googlesource.com/316511
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
|
|
7c8d1d84
|
2015-12-09T13:09:03
|
|
D3D11: Use default arguments in texture format table.
This reduces the footprint of the table considerably, and makes it
a little bit easier to maintain.
BUG=angleproject:1244
Change-Id: I84710729b94ba78813f9be2fcadb8c4d51fe8d7d
Reviewed-on: https://chromium-review.googlesource.com/317330
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
a37c6137
|
2015-11-11T17:06:53
|
|
D3D11: Fix GL_ETC1_RGB8_OES format.
Passes all ETC1 related dEQP tests on Windows.
BUG=angleproject:1212
TEST=dEQP-GLES2.capability.extensions.compressed_texture_formats.GL_OES_compressed_ETC1_RGB8_texture
TEST=dEQP-GLES2.functional.texture.format.*
TEST=dEQP-GLES2.functional.texture.wrap.*
TEST=dEQP-GLES2.functional.texture.filtering.*
TEST=dEQP-GLES3.functional.texture.format.compressed.etc1*
TEST=dEQP-GLES3.functional.texture.filtering.*
Change-Id: I937b039f90161bb5e8777766ea0c032ddfbbf159
Reviewed-on: https://chromium-review.googlesource.com/312416
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Minmin Gong <mgong@microsoft.com>
|
|
0450dfcc
|
2015-09-17T11:25:27
|
|
Changed GetTextureFormatInfo to use static switch
BUG=angleproject:1160
The find of the map table in GetTextureFormatInfo is showing up as a
hotspot in draw call perf benchmark. Switching the map into a static
switch should make it more efficient.
Other tables that only GetTextureFormatInfo uses is also converted into
static switching instead of maps for performance. Other tables include
swizzle_format_table and load_functions_table which are both only used by
GetTextureFormatInfo to generate the TextureFormat for a given
internalFormat and d3d device caps.
The static switches for each table is generated using a python script
named gen_*.py. The data for each table is stored in JSON files. This
makes it more flexible for additions and deletions.
Change-Id: I0f40fcc2a215c85661863ea225891071cb2f2c71
Reviewed-on: https://chromium-review.googlesource.com/301770
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Tryjob-Request: Dian Xiang <dianx@google.com>
Tested-by: Dian Xiang <dianx@google.com>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|