f08be92d68e6c966fcc71dba8b77c5335eb2c963 |
|
18-Dec-2017 |
Alexis Hetu <sugoi@google.com> |
ETC2 RGBA fix Since EAC is no longer decoded to an 8 bit format, but ETC2 alpha still is, we need to distinguish between the 2. Added an argument to DecodeBlock for that purpose. Change-Id: Ied4263cecc43f88609a357437c11f4e43af229b8 Reviewed-on: https://swiftshader-review.googlesource.com/15228 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
/external/swiftshader/src/Renderer/ETC_Decoder.cpp
|
f46493fe09205383fc22ab18bbb6cc1ddcb94079 |
|
18-Dec-2017 |
Alexis Hetu <sugoi@google.com> |
Fixed EAC failures The ETC2 decoder spec has a slight difference with the EAC decoder spec when it comes to handling the 0 multiplier corner case. For ETC2, we have (OpenGL ES 3.0 spec, section C.1.3): "An encoder is not allowed to produce a multiplier of zero, but the decoder should still be able to handle also this case (and produce 0 x modifier = 0 in that case)." For EAC, we have (OpenGL ES 3.0 spec, section C.1.5): "If the multiplier value is zero, we should set the multiplier to 1.0/8.0" In order to take this into account, the EAC decoded output can no longer be represented by an 8 bit value, but must be represented by a minimum of 11 bits, as the spec requires. For now, the EAC decoder decodes EAC into a 32 bit integer format, which then gets converted to a 32 bit float format internally. Eventually, it would be possible for the EAC decoder to decode the image to a signed 16 bit integer internal format, if it was supported. Fixes all failures in: dEQP-GLES3.functional.texture.wrap* Change-Id: I32106383ade56e375229231ff230a2574791caa6 Reviewed-on: https://swiftshader-review.googlesource.com/15188 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
/external/swiftshader/src/Renderer/ETC_Decoder.cpp
|
0bac285a78df6a6d7a6b68784748b92805420ffb |
|
07-May-2016 |
Nicolas Capens <capn@google.com> |
Apply the Apache 2.0 license. Change-Id: I4a7aeefedcd2d891093520d5a10ebefadcddb5be Reviewed-on: https://swiftshader-review.googlesource.com/5320 Reviewed-by: Nicolas Capens <capn@google.com> Tested-by: Nicolas Capens <capn@google.com>
/external/swiftshader/src/Renderer/ETC_Decoder.cpp
|
0de50d45bcb034864c837c27c7fc5ed2d30d80c4 |
|
09-Sep-2015 |
Alexis Hetu <sugoi@google.com> |
ETC2 decoder A new ETC2 decoder was added to SwiftShader, based on the OpenGL ETC2 specification. The decoder is fully standalone and does not rely on any outside code (there are no files included in the header and the source file only include the header file, so it can easily be ported to any other project). Things to note: - In Surface.cpp, signed ETC2 images are decoded to full 32FP images, because of the lack of support for signed 8 bit R and RG internal formats. This should be fixed as soon as these formats are made available. - sRGB conversion is not performed within the decoder, so it has been added as a loop inside Surface::decodeETC2 after the ETC2 decoding is performed. This is to make sure that there is no loss of precision, should we choose to do the conversion to a higher bit precision format. The loop is fairly straightforward and does the conversion in place, so the impact on performance compared to doing the sRGB conversion in the decoder should be minimal. Change-Id: I3a1af623353344bf35818ba9c9f4cf349b587e2f Reviewed-on: https://swiftshader-review.googlesource.com/3960 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <capn@google.com>
/external/swiftshader/src/Renderer/ETC_Decoder.cpp
|