src/compiler/translator/TextureFunctionHLSL.cpp


Log

Author Commit Date CI Message
Anders Leino 262e2824 2019-05-20T14:24:40 Use D3D11 GetDimensions driver workaround for 3D textures Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. This affects all integer format textures, because the dimensions are used for sample position calculations with integer format textures, which leads to sampling outside texture when the base level is non-zero. Bug: angleproject:3441 Change-Id: Ic54328e3d712e28a40efb4e63b8fce0baeb4ef42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1619785 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Anders Leino 69d04939 2019-05-20T14:04:13 Use D3D11 GetDimensions driver workaround for 2D array textures Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. This affects all integer format textures, because the dimensions are used for sample position calculations with integer format textures, which leads to sampling outside texture when the base level is non-zero. Bug: angleproject:3441 Change-Id: Ic012cac94ce0a627221087ecb2ee6aa3665900d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1617780 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Anders Leino e4452440 2019-05-09T13:29:49 Fix integer cube map sample HLSL calculation This patch fixes two issues in the HLSL generated to sample an integer cube map. The first issue was that an inappropriate major axis was selected when sampling from corners of the cube map. In particular, the added test case demonstrates a situation where a major axis of length 0 was selected, which lead to an infinite LOD being calculated. The fix was to adjust inequalities such that always exactly one of xMajor, yMajor and zMajor is true. The second issue was that the derivative functions ddx and ddy were being used on values that depended on the choice of major axis, which is not continuous at the corners of a cube map. This lead to a finite but incorrect LOD being calculated. The fix was to make sure major axis choice is not included when estimating the scaling factor. Bug: angleproject:3442 Change-Id: Ia3eb8c89f47d1bfdadc18aec989e8cbebc088ec0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1601515 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Anders Leino 60cc751a 2019-05-06T09:25:27 Use D3D11 GetDimensions driver workaround for integer cube maps Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. This affects integer cube maps because the dimensions are used for sample position calculations, which leads to sampling outside the cube side textures when the base level is non-zero. Bug: angleproject:3441 Change-Id: I151f9336b9c6d8ec7012bf5010a2d45fb2951e73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1595688 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Anders Leino f6cbe44a 2019-04-18T15:32:07 Use D3D11 GetDimensions driver workaround for 2D integer textures Some NVIDIA D3D11 drivers are buggy and interprets the level passed to GetDimensions as being relative to 0, rather than the SRV's MostDetailedMip. A test is added which reads from non-zero base level integer texture. When the workaround is not being used, reads outside the first quadrant return black. Bug: chromium:679639 Change-Id: I5282a1ba207b2d553d1836f9460ec09cb5590ea6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1591594 Commit-Queue: Kimmo Kinnunen FI <kkinnunen@nvidia.com> Reviewed-by: Kimmo Kinnunen FI <kkinnunen@nvidia.com>
Xinghua Cao 0d218da4 2018-12-17T11:53:52 Specify texture LOD in compute shader on D3D backend D3D does not define LOD in compute shader, so Sample() is not supported, try to use SampleLevel(). Bug: angleproject:2756 TEST=angle_end2end_tests.ComputeShaderTest .TextureFunction/ES3_1_D3D11 dEQP.GLES31/functional_image_load_store_2d_store* Change-Id: I63e707d2b56e807cfe766cc21bc6b0819982ce80 Reviewed-on: https://chromium-review.googlesource.com/c/1379672 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b980c563 2018-11-27T11:34:27 Reformat all cpp and h files. This applies git cl format --full to all ANGLE sources. Bug: angleproject:2986 Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f Reviewed-on: https://chromium-review.googlesource.com/c/1351367 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Till Rathmann b8543630 2018-10-02T19:46:14 Support GL_OES_texture_border_clamp Added support for GL_TEXTURE_BORDER_COLOR and GL_CLAMP_TO_BORDER in OpenGL/OpenGLES, Direct3D9 and Direct3D11 backends. For integer textures in OpenGLES3 contexts these additional entry points are available now: void glTexParameterIivOES(enum target, enum pname, const int *params); void glTexParameterIuivOES(enum target, enum pname, const uint *params); void glGetTexParameterIivOES(enum target, enum pname, int *params); void glGetTexParameterIuivOES(enum target, enum pname, uint *params); void glSamplerParameterIivOES(uint sampler, enum pname, const int *params); void glSamplerParameterIuivOES(uint sampler, enum pname, const uint *params); void glGetSamplerParameterIivOES(uint sampler, enum pname, int *params); void glGetSamplerParameterIuivOES(uint sampler, enum pname, uint *params); BUG=angleproject:2890 TEST=angle_end2end_tests.TextureBorderClamp* Change-Id: Iee3eeb399d8d7851b3b30694ad8f21a2111f5828 Reviewed-on: https://chromium-review.googlesource.com/c/1257824 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jiawei Shao a1ac3fe8 2018-10-10T12:29:31 ES31: Support textureGather[Offset] on int/uint formats on D3D11 This patch implements the translation of textureGather[Offset] on integer and unsigned integer format textures on D3D11. According to MSDN, Gather[Red|Green|Blue|Alpha] can be used on integer and unsigned integer format textures with float texture coordinates: https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-to-gather Currently the dEQP tests on TextureGather[Offset] on cube map textures in integer or unsigned formats still cannot pass. This issue is under investigation. Bug: angleproject:2826 Test: dEQP-GLES31.functional.texture.gather.basic.2d.* dEQP-GLES31.functional.texture.gather.basic.2d_array.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d_array.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.* Change-Id: If049dc395fb17cd34dec902630e3a1154e5d4806 Reviewed-on: https://chromium-review.googlesource.com/c/1271926 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jiawei Shao 19b51d29 2018-09-19T15:14:45 ES31: Support textureGather[Offset] on shadow samplers This patch implements translating textureGather[Offset] into HLSL when the sampler is a shadow sampler. The related HLSL function should be GatherCmp(). According to the definition of textureGatherOffset(): ([ESSL 3.1] Chapter 8.9.3 Page 138) - gvec4 textureGatherOffset(gsampler2D sampler, vec2 P, ivec2 offset, [,int comp]) - vec4 textureGatherOffset(sampler2DShadow sampler, vec2 P, float refZ, ivec2 offset) We need to add parameter "refZ" before "offset" when the sampler is a shadow sampler. Bug: angleproject:2826 Test: dEQP-GLES31.functional.texture.gather.basic.2d.depth32f.* dEQP-GLES31.functional.texture.gather.basic.2d_array.depth32f.* dEQP-GLES31.functional.texture.gather.basic.cube.depth32f.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d.depth32f.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d_array.depth32f.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.depth32f.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.depth32f.* Change-Id: I9a7d095dd3cfa41aaefd14d012ed1f309abfc6d5 Reviewed-on: https://chromium-review.googlesource.com/c/1244081 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jiawei Shao cf8ad760 2018-09-21T09:11:35 ES31: Support translating textureGatherOffset into HLSL This patch implements the translation from GLSL texture function textureGatherOffset into HLSL by using the optional "offset" parameter of Texture2D.Gather[Red|Green|Blue|Alpha]. This patch also defines the implementation-dependent limit MIN_PROGRAM_TEXTURE_GATHER_OFFSET and MAX_PROGRAM_TEXTURE_GATHER_OFFSET on D3D11. According to MSDN, the valid range of "offset" used in Gather should be [-32, 31]. https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/gather4-po--sm5---asm- This patch also refactors OutputTextureGatherFunctionBody() so that some redundant code can be removed. BUG=angleproject:2826 TEST=dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d.rgba8.* dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d_array.rgba8.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8.* dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8.* (without texture_swizzle) Change-Id: Id0f411257b64c8a97428f16b1a86950ec6d36e2f Reviewed-on: https://chromium-review.googlesource.com/1237303 Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Jiawei Shao a977acc8 2018-09-19T12:46:05 ES31: Support translating textureGather into HLSL - Part I This patch is the first one in the series of supporting GLSL texture function textureGather/textureGatherOffset on D3D11. According to ESSL 3.1 SPEC (Chapter 8.9.3, Page 130), the definition of textureGather on sampler2D is: gvec4 textureGather (gsampler2D sampler, vec2 P[, int comp]) The parameter "comp" is optional, and if it is specified, the value of "comp" must be a constant integer expression with a value of 0, 1, 2, or 3, identifying the x, y, z, or w postswizzled component of the four-component vector lookup result for each texel, respectively. If comp is not specified, it is treated as 0. According to the definition above, textureGather is equivalent to Texture2D.Gather[Red|Green|Blue|Alpha] in HLSL, where we can use a switch-case expression to choose the right HLSL texture function. The features listed here will be implemented in the following patches: 1. Support textureGatherOffset 2. Support textureGather[Offset] on isamplers and usamplers 3. Support textureGather[Offset] on textures when swizzle is on 4. Support textureGather[Offset] on shadow samplers BUG=angleproject:2826 TEST=dEQP-GLES31.functional.texture.gather.basic.2d.rgba8.* dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.* (without texture_swizzle) dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8.* (without texture_swizzle) Change-Id: Iff2ed4f8b65dad613cb0bafdfd19f8f0528e832c Reviewed-on: https://chromium-review.googlesource.com/1232980 Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 2da04538 2018-08-24T13:59:44 Add sampler2DMSArray support to HLSL output This is done with small adjustments to TextureFunctionHLSL. Most of the functionality was already in place before. This changes the categorization of sampler types in BasicTypes.h helper functions: 2D array samplers are no longer treated as 2D samplers, but the two categories are now entirely disjoint. This makes TextureFunctionHLSL a little bit simpler. BUG=angleproject:2775 TEST=angle_unittests, angle_end2end_tests Change-Id: I84d9b56c37b1aaa01ee5921b6f17f8a78698fce2 Reviewed-on: https://chromium-review.googlesource.com/1188562 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho b4cc49fb 2018-01-25T14:37:06 Use only ImmutableString in TextureFunctionHLSL BUG=angleproject:2267 TEST=angle_unittests, angle_end2end_tests Change-Id: I344ca0098762fcf665365c79d1f8fb04cb1b03f6 Reviewed-on: https://chromium-review.googlesource.com/887067 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Olli Etuaho fbb1c792 2018-01-19T16:26:59 Store symbol names as a ImmutableString This will enable compile-time initialization of built-in symbols as well as reducing copying strings. Most of the code that deals with names is changed to use ImmutableString where it makes sense to avoid conversions. The lexer/parser now allocate const char pointers into pool memory instead of allocating TStrings. These are then converted to ImmutableString upon entering TParseContext. BUG=angleproject:2267 TEST=angle_unittests, angle_end2end_tests Change-Id: I244d6271ea1ecf7150d4f89dfa388a7745a1150c Reviewed-on: https://chromium-review.googlesource.com/881561 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 12c03761 2018-01-25T12:22:33 Resubmit: Use ImmutableString for HLSL texture references This fixes an issue in the original revision of this patch by adding a operator<< to TInfoSinkBase that takes ImmutableString as a parameter. This also adds ImmutableStringBuilder class, which can be used to build ImmutableStrings in place without extra allocations if the maximum length is known in advance. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I52e984657a3aba3e6fe67a82b401c6b8de557d18 Reviewed-on: https://chromium-review.googlesource.com/890522 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill d1434c04 2018-01-29T02:29:53 Revert "Use ImmutableString for HLSL texture references" This reverts commit c13bda8678e86ff75a4acfc94f7a45e58224926d. Reason for revert: May have broken LibFuzzer and AFL builds: https://ci.chromium.org/buildbot/chromium.fyi/Afl%20Upload%20Linux%20ASan/7718 https://build.chromium.org/deprecated/chromium.fyi/builders/Libfuzzer%20Upload%20Linux%20ASan/builds/8691 In file included from ../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.cpp:12: In file included from ../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.h:19: ../../third_party/angle/src/compiler/translator/InfoSink.h:40:16: error: call to function 'operator<<' that is neither visible in the template definition nor found by argument-dependent lookup stream << t; ^ ../../third_party/angle/src/compiler/translator/TextureFunctionHLSL.cpp:111:9: note: in instantiation of function template specialization 'sh::TInfoSinkBase::operator<<<sh::ImmutableString>' requested here out << textureReference; ^ ../../third_party/angle/src/compiler/translator/ImmutableString.h:76:15: note: 'operator<<' should be declared prior to the call site or in namespace 'sh' std::ostream &operator<<(std::ostream &os, const sh::ImmutableString &str); ^ 1 error generated. Bug: chromium:806619 Original change's description: > Use ImmutableString for HLSL texture references > > This also adds ImmutableStringBuilder class, which can be used to > build ImmutableStrings in place without extra allocations if the > maximum length is known in advance. > > BUG=angleproject:2267 > TEST=angle_unittests > > Change-Id: I4dfb78adeb0cffcfad0d25753fb8063466012c92 > Reviewed-on: https://chromium-review.googlesource.com/886362 > Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> TBR=jmadill@chromium.org,cwallez@chromium.org,oetuaho@nvidia.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:2267 Change-Id: I445f5a786f8b16c3f40f28df09d45fcb215a9c88 Reviewed-on: https://chromium-review.googlesource.com/890542 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho c13bda86 2018-01-25T12:22:33 Use ImmutableString for HLSL texture references This also adds ImmutableStringBuilder class, which can be used to build ImmutableStrings in place without extra allocations if the maximum length is known in advance. BUG=angleproject:2267 TEST=angle_unittests Change-Id: I4dfb78adeb0cffcfad0d25753fb8063466012c92 Reviewed-on: https://chromium-review.googlesource.com/886362 Commit-Queue: Olli Etuaho <oetuaho@nvidia.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
JiangYizhou 5b03f475 2017-01-09T10:22:53 ES31: Implement getMultisamplefv for D3D part. Implement getMultisamplefv for d3d part.Because standard D3D sample positions from https://msdn.microsoft.com/en-us/library/windows/ desktop/ff476218.aspx are fixed sample pattern,we put the sample positions into a constant array in renderer11_utils.cpp with a function to query it. BUG=angleproject:1590 TEST=dEQP-GLES31.functional.texture.multisample.samples_*.sample_position Change-Id: I6e6006ed1c4e22fe006522e9ffd3297247bee75e Reviewed-on: https://chromium-review.googlesource.com/594970 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
JiangYizhou 34bc315d 2017-03-29T14:56:01 ES31: Implement multisampled Textures for D3D part. Implement TexStorage2DMultisample api for d3d part. BUG=angleproject:1590 TEST=angle_end2end_tests --gtest_filter=TextureMultisampleTest* TEST=angle_deqp_gles31_tests --deqp-case=dEQP-GLES31.functional.texture.multisample.negative.fbo_* Change-Id: Icbfba45b9c2965af02b54dd4060b7b49970cb74b Reviewed-on: https://chromium-review.googlesource.com/457161 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang ba992ab5 2017-04-19T11:18:14 Fix HLSL 3 generation of shaders with texture LOD. BUG=angleproject:2002 Change-Id: If8e6bbaeb5769341f92f05025eafb6a202fec437 Reviewed-on: https://chromium-review.googlesource.com/481680 Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Jamie Madill 8aeeed6e 2017-03-15T18:09:26 D3D11: Work around compiler nested sampling bug. We can potentially work around a bug in the HLSL compiler by omitting the const qualifier from some sampling operations. BUG=angleproject:1923 Change-Id: I8a5d119707721e9c19f06be4ad808f87bfcdbee5 Reviewed-on: https://chromium-review.googlesource.com/454938 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Olli Etuaho 92db39e8 2017-02-15T12:11:04 Fix multisample texture operations crashing HLSL generation This includes a partial implementation of multisample texture operations on the HLSL backend. It can't be fully tested yet, since the API side isn't implemented. BUG=angleproject:1442 TEST=dEQP-GLES31.functional.shaders.builtin_functions.texture_size.* (successfully compiles instead of crashing) Change-Id: Ief782db28388a3f8fd8113cc86ce3c4f500f322a Reviewed-on: https://chromium-review.googlesource.com/443264 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Andi-Bogdan Postelnicu 9e77ce35 2016-09-27T17:05:44 Prevent fallback on default branch for case EbtSamplerCubeShadow BUG=angleproject:1549 Change-Id: I8f003257b6f39282cb52ccdbacb73860ab37c919 Reviewed-on: https://chromium-review.googlesource.com/390271 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 28a97ee1 2016-09-22T13:01:26 Generate unique HLSL texture function names for external textures. Because 2D and external textures have the same HLSL texture type, they were generating texture functions with the same name. This causes conflicts when both 2D and external textures are used in the same shader. BUG=angleproject:1534 BUG=645532 Change-Id: I4b324014b7d9b4851d358730cf4e31fc8461584c Reviewed-on: https://chromium-review.googlesource.com/388551 Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 1fe74c7e 2016-08-25T13:23:01 Manually compute the mipmap size for the textureSize builtin. There were two issues with the current implementation: * The GetDimensions function already takes into account the base level of the SRV. * The GetDimensions function returns doesn't return valid sizes for levels that don't exist in the SRV. Instead, manually do the lod offset. BUG=angleproject:931 BUG=angleproject:1316 TEST=dEQP-GLES3.functional.shaders.texture_functions.texturesize.sampler2d_fixed_vertex Change-Id: I63259b563a42b93b73949e0ef7ac412099a42f13 Reviewed-on: https://chromium-review.googlesource.com/376099 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang b66a9097 2016-05-16T15:59:14 Add support for OES_EGL_image_external and OES_EGL_image_external_essl3. BUG=angleproject:1372 Change-Id: I8489e7fd0ab409b0775041ad5e9fbf0aab53886d Reviewed-on: https://chromium-review.googlesource.com/344734 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Ian Ewell bda75597 2016-04-18T17:25:54 Finish NV12 support via streams. The main functionality for NV12 texture support through EGL streams has been added. Updates to the compiler, texture code, and stream code were added to support binding to external D3D11 NV12 textures. An end2end test was also added to test sampling of YUV textures and converting to RGB. There is also a new script to convert BMP files to an NV12 texture ready to load into D3D11 for testing purposes. BUG=angleproject:1332 Change-Id: I39b6ec393ea338e2c843fb911acc1b36cd1158a0 Reviewed-on: https://chromium-review.googlesource.com/339454 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Ewell <ewell@google.com> Reviewed-on: https://chromium-review.googlesource.com/341254 Reviewed-by: Ian Ewell <ewell@google.com>
Corentin Wallez 9670b03e 2016-04-29T09:47:47 Revert "Finish NV12 support via streams." Broke Windows Clang compilation, see https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Clang%20Builder%20%28dbg%29/builds/3583/steps/compile/logs/stdio and search for TextureStorage11.h This reverts commit 9b8b359fa3615be7c7492239a48f61103b2e4fcc. Change-Id: I6e54305eba02b40927a35577594df39e951adb32 Reviewed-on: https://chromium-review.googlesource.com/341430 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Ian Ewell 9b8b359f 2016-04-18T17:25:54 Finish NV12 support via streams. The main functionality for NV12 texture support through EGL streams has been added. Updates to the compiler, texture code, and stream code were added to support binding to external D3D11 NV12 textures. An end2end test was also added to test sampling of YUV textures and converting to RGB. There is also a new script to convert BMP files to an NV12 texture ready to load into D3D11 for testing purposes. BUG=angleproject:1332 Change-Id: I098940e6f25e113dcc4fc8d22ffed4b5a16fd860 Reviewed-on: https://chromium-review.googlesource.com/339454 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Ewell <ewell@google.com>
Olli Etuaho 5858f7e3 2016-04-08T13:08:46 Re-land "Refactor texture function handling in OutputHLSL" This change is pure refactoring, it does not introduce any functional changes. Separate texture function output into a helper class and further into different helper functions to make the code more maintainable. Some of the logic is simplified slightly by eliminating duplicate cases and limiting the scope of variables where possible, but care has been taken to preserve the exact same functionality as before. Re-land with a fix to typo in include guard. BUG=angleproject:1349 TEST=dEQP-GLES3.functional.shaders.texture_functions.* (no regression) dEQP-GLES3.texture.* (no regression) Change-Id: I57c1ec1950fa05bd16275ca578eb5ee99b34a5ae Reviewed-on: https://chromium-review.googlesource.com/339180 Reviewed-by: Jamie Madill <jmadill@chromium.org>
Corentin Wallez c2ed9380 2016-04-15T13:29:25 Revert "Refactor texture function handling in OutputHLSL" It triggered an include guard warning on Windows Clang This reverts commit 6f6c5580553d1f3c584df692823c2f5640e23d88. Change-Id: Ibd4f2851f311a494f16376d8eed38f3119594761 Reviewed-on: https://chromium-review.googlesource.com/338933 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Olli Etuaho 6f6c5580 2016-04-08T13:08:46 Refactor texture function handling in OutputHLSL This change is pure refactoring, it does not introduce any functional changes. Separate texture function output into a helper class and further into different helper functions to make the code more maintainable. Some of the logic is simplified slightly by eliminating duplicate cases and limiting the scope of variables where possible, but care has been taken to preserve the exact same functionality as before. BUG=angleproject:1349 TEST=dEQP-GLES3.functional.shaders.texture_functions.* (no regression) dEQP-GLES3.texture.* (no regression) Change-Id: I5d81b842d693c0055890d5724eae6c105e454cd8 Reviewed-on: https://chromium-review.googlesource.com/337931 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>