src


Log

Author Commit Date CI Message
Jamie Madill 3f2e61de 2014-09-05T10:38:05 Enable MRT pixel shader rewriting. Writing to all 8 pixel outputs was causing performance problems on Intel and AMD. Enabling Geoff's work to rewrite our pixel shaders solves the regression. This patch also includes a workaround to the nVidia driver bug where it would ignore NULL RT values in OMSetRenderTargets, by compacting the RT list to skip NULL values. BUG=angle:705 BUG=365078 Change-Id: Ia68af6f0ccd5f10c484d6f76297a0bec694948f0 Reviewed-on: https://chromium-review.googlesource.com/214852 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill aef95dec 2014-09-05T10:12:41 Use attachment binding points for dynamic PS key. Because our output signature is only dependent on the arrangment of the attachments, not the attachment type, use the output layout key for now. If we need to, we could store both, in the future. BUG=angle:705 Change-Id: I3b99954d30b91a4741fdd6f48f8ffcf88c0bea7a Reviewed-on: https://chromium-review.googlesource.com/215846 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill b33b4777 2014-09-04T10:48:28 Declare commit_id a gyp 'hard_dependency'. Hard dependencies are marked for static library targets, unlike normal soft dependencies which the static libraries ignore. This change ensures we run the commit_id script before compiling any static libraries that depend on it. Change-Id: Ic29652012883273810c2863132d6f49bd6ada4b8 Reviewed-on: https://chromium-review.googlesource.com/216461 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 3592a338 2014-09-03T15:07:15 Add a new TextureAttachment class to simplify FBO attachments. This single class will eventually replace the four child classes. BUG=angle:732 Change-Id: Ie2862b4458c8b1302ff4fc5fbe0e4ded3b81894d Reviewed-on: https://chromium-review.googlesource.com/213857 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 945f7329 2014-09-03T15:07:14 Add an ImageIndex helper struct to index into tex levels. This encapsulates the three values needed to index into the image array. It will simplify the logic for querying texture images from the base calss. BUG=angle:732 Change-Id: I31c55b3f972fd4d96ab540ec8498ef4b9b2ba16b Reviewed-on: https://chromium-review.googlesource.com/213856 Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6d708263 2014-09-03T15:07:13 Refactor Framebuffer::invalidateSub. Use our new helper methods to simplify this method. BUG=angle:732 Change-Id: I56b837678d5efbc60de6de4bdb01447ca811e71d Reviewed-on: https://chromium-review.googlesource.com/213855 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 04994ec4 2014-08-28T11:31:36 Use libANGLE to reduce duplicated ANGLE source compiles. libGLESv2_static and libGLESv2 can re-use the same object files. BUG=angle:733 Change-Id: I894f4b5b6fbc1fc47812609d9e996691daf9f318 Reviewed-on: https://chromium-review.googlesource.com/214188 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ce20c7f1 2014-09-03T11:56:29 Retrieve render colorbuffers as a single vector. Making all our render methods query FBO attachments for rendering in one place will allow us to easily control the MRT peformance workaround, and simplify the implementation. BUG=angle:705 Change-Id: I6c476d45b81228d6ffe8831347443994237e3593 Reviewed-on: https://chromium-review.googlesource.com/215843 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 04668675 2014-09-03T09:40:49 Mark shared and std140 UBOs as always active. This aligns ANGLE with the GL spec. With this fix, we pass all of the dEQP conformance tests in Functional / Uniform Buffer Object that don't rely on single buffers. BUG=angle:507 Change-Id: I6063a416e3f7ee6d5327d96850e3d0cc8521c817 Reviewed-on: https://chromium-review.googlesource.com/213506 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a2fbb840 2014-09-03T09:40:47 Move CollectVariables to sh namespace. BUG=angle:466 Change-Id: I903ea840e333dfeb44f242a1759aed39974d0510 Reviewed-on: https://chromium-review.googlesource.com/213505 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 54ad4f81 2014-09-03T09:40:46 Use the CollectVariables path on the HLSL translator. This approach consolidates our two methods, and lets us reuse the same code for both methods of variable collection. BUG=angle:466 Change-Id: Ie92f76ff0b6d0d0dbfd211a234d0ab86290fa798 Reviewed-on: https://chromium-review.googlesource.com/213504 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 2ad1dc48 2014-09-03T09:40:45 Compact the D3D shader specializations into one. BUG=angle:731 Change-Id: I4f35a05aeea130f9011ec62cfe931ed23e2681c9 Reviewed-on: https://chromium-review.googlesource.com/214871 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill d15250e6 2014-09-03T09:40:44 Move shader variables into the base impl. These variable types apply across shader types. Either we'll want a way to cache them after we query them, or we'll do a pre-parse pass similar to our current Chromium GLSL to GLSL pre-pass where we store the variables in ANGLE. In either case, they're shared across GL implementations so make sense as queries from gl::Shader. BUG=angle:731 Change-Id: I23f5541423abb4af87a2bc2fc1e9f4047fd2ff90 Reviewed-on: https://chromium-review.googlesource.com/214870 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 2d96b9eb 2014-08-29T15:46:47 Use GL-like methods for InvalidateFramebuffer calls. This will faciliate the MANGLE implementation. BUG=angle:732 Change-Id: I0e4d569667e03305c9cca8d7c23154c70fb71eeb Reviewed-on: https://chromium-review.googlesource.com/213854 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 400a4418 2014-08-29T15:46:45 Move logic of InvalidateFramebuffer to Framebuffer.cpp. This method will translate to an implementation call. BUG=angle:732 Change-Id: Ida1e3c9cccd94f7d166cc9a785708c12bfc52da5 Reviewed-on: https://chromium-review.googlesource.com/213853 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 8e7d7a30 2014-09-02T17:09:08 Fix use of references with va_start BUG=angle:736 va_start behavior is undefined if the second parameter is a function, array, or reference type. clang produces a warning for this, while MSVC does not. Change-Id: I0bc2805e312e3542aac816f10a257e2f1cfad128 Reviewed-on: https://chromium-review.googlesource.com/216010 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Tested-by: Nico Weber <thakis@chromium.org>
Jamie Madill 685dd27a 2014-08-29T15:46:43 Replace getDepthStencil with getRenderTarget. In all places where we called this method, we treated a NULL return value as an internal error. This implies to me that we don't need the two getRenderTarget and getDepthStencil methods, since we aren't using them to check if a surface is depth or stencil. BUG=angle:732 Change-Id: I4d1dc148abf3383b1b101bbff4f4d22de27ad03e Reviewed-on: https://chromium-review.googlesource.com/213852 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 97d65b79 2014-08-05T18:04:22 Clean up Query classes. BUG=angle:717 Change-Id: I8f29f24964a9661d9f0bea5dca48cebddbf9b0b2 Reviewed-on: https://chromium-review.googlesource.com/211136 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 33ea2f97 2014-08-29T15:15:01 Added BufferSubData benchmark. BUG=angle:705 Change-Id: I65d557f35e4c9f1d94853a775330a92b7d428847 Reviewed-on: https://chromium-review.googlesource.com/213810 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones 43a53e24 2014-08-28T16:23:22 Converted ProgramBinary to use Context caps instead of Renderer BUG=angle:731 Change-Id: I9bbce69cabf767fb5fb2c94f437a9950bc79d1aa Reviewed-on: https://chromium-review.googlesource.com/215370 Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a502c749 2014-08-28T17:19:13 Use the specified Program instead of current in GetUniform. This bug slipped in with the GetUniform validation refactor. BUG=angle:571 Change-Id: I2b87e6fe98224ba99c5b21a71d66b197fd618741 Reviewed-on: https://chromium-review.googlesource.com/214872 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang b1196687 2014-07-23T13:47:29 Update validation functions to use new error mechanisms. BUG=angle:520 Change-Id: I1c64af2e57cf2d89138bd23da2b07d5873742e4e Reviewed-on: https://chromium-review.googlesource.com/209880 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 05881a0f 2014-07-10T14:05:30 Add caps for transform feedback limits from table 6.34. BUG=angle:658 Change-Id: Ifd8c620080c8de486ffb7c8f9e985be1aba516c1 Reviewed-on: https://chromium-review.googlesource.com/207376 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 3a61c321 2014-07-10T13:01:54 Add caps for the aggregate shader limits from table 6.33. BUG=angle:658 Change-Id: I59d0cd131114fcb925f01d83d218a657f4498a2a Reviewed-on: https://chromium-review.googlesource.com/207375 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0b7eef7c 2014-06-12T14:10:47 Removed common_includes.h reordered includes. Since we are not using precompiled headers anymore, remove common_includes.h so that fewer files are included in cpp files. Reordered includes to be in the following order: 1) Local ANGLE project headers, ordered by directory in descending depth 2) GL headers 3) STL headers This helps enforce the include-what-you-use principal by reducing the number of STL headers unexpectedly shared between files. This include order conflicts with some of the Google c++ style guide which states that STL includes should be first but this helps us catch more issues. Change-Id: I8f7785f4ad574e253dd3c7b4fb1e54d3ce3b99fc Reviewed-on: https://chromium-review.googlesource.com/214850 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Brandon Jones d8d72434 2014-08-22T15:11:23 Moved DynamicHLSL into renderer/d3d Obviously D3D-only class is obvious. :) BUG=angle:731 Change-Id: Ide54e76a8b9bacb9b6834e2cb0a801140eecfe46 Reviewed-on: https://chromium-review.googlesource.com/213862 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Brandon Jones 7162096e 2014-08-20T14:04:59 More shader refactor cleanup Removed VertexShader and FragmentShader in favor of using a single Shader object Used VertexShaderD3D and FragmentShaderD3D directly when appropriate. BUG=angle:731 Change-Id: Ib1ffdf85ee0bfa7c88bb9ddb1029ccbd63a9dbe1 Reviewed-on: https://chromium-review.googlesource.com/213840 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill e3929050 2014-08-28T16:02:27 Revert "Fixes a compilation error when ANGLE_DEFAULT_D3D11 is defined." The condition would always evaluate to true, since we define ANGLE_DEFAULT_D3D11 as zero. This reverts commit 10f05630a9a65514e74ec235a129104a5101d582. Change-Id: I39304398be149d09a8f65a6cf44400b3672ed730 Reviewed-on: https://chromium-review.googlesource.com/214715 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ea24759f 2014-08-28T10:37:08 Remove remnants of old PCH code. Remove the precompiled.cpp file which was producing a build warning, and rename the header to make it clear we no longer support PCH. BUG=angle: Change-Id: I944081ae477b1478ca9c18924fb02bb920d420a7 Reviewed-on: https://chromium-review.googlesource.com/214187 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a6f267f9 2014-08-27T11:44:15 Fix row-major layout tracking in interface blocks. Some block field types, such as nested structs, were bugged. This only affects our "CollectVariables" path, not our current HLSL UBO path. BUG=angle:466 Change-Id: I2b8daf58aa7ec1ad06a80d38f57e76087eacccdc Reviewed-on: https://chromium-review.googlesource.com/213503 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Brandon Jones f05cdee4 2014-08-27T15:24:07 Refactoring Shader objects (Take 2) This change refactors shaders to no longer be dependent on D3D-only concepts. BUG=angle:731 Change-Id: I1006112f1d31b7e41bd14bd3225ea157b7d6c6c9 Reviewed-on: https://chromium-review.googlesource.com/214467 Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Jones e54be46a 2014-08-27T22:21:45 Revert "Refactoring Shader objects" This reverts commit 537dfde52a33d621ab1198c949a81b09a1269b2e. Change-Id: I5eb8923ac8f78877e6e77a8cd897021e56ee004a Reviewed-on: https://chromium-review.googlesource.com/214466 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Brandon Jones 537dfde5 2014-08-20T14:04:59 Refactoring Shader objects This change refactors shaders to no longer be dependent on D3D-only concepts. BUG=angle:731 Change-Id: I4fc1efeba9df4f873b3d7c8ba6f67f00b6532b9c Reviewed-on: https://chromium-review.googlesource.com/213803 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill 549c7fdf 2014-08-25T15:47:56 Fix GetUniform validation. We were missing a check for an out-of-bounds Uniform, which could cause us to miss an error and also give assertion failures. BUG=angle:571 Change-Id: I844658a82ce13ea179a2358a202733c54bc2c0c7 Reviewed-on: https://chromium-review.googlesource.com/212934 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 78f41805 2014-08-25T15:47:55 Refactor GetUniform validator helpers. BUG=angle:571 Change-Id: I7b36c7af38b102a24dc0e5d5d87fc042533e90af Reviewed-on: https://chromium-review.googlesource.com/212933 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 99a1e985 2014-08-25T15:47:54 Move GetUniform size validation to top layer. BUG=angle:571 Change-Id: Ie7064cf85f6a125ccd6cdf1bff89443520e2a06d Reviewed-on: https://chromium-review.googlesource.com/212932 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 0063c517 2014-08-25T15:47:53 Move GetUniform validation to the validation layer. BUG=angle:571 Change-Id: Id1b7afb22d8bd52dbf7f95f4e8cac3fc8f798596 Reviewed-on: https://chromium-review.googlesource.com/212931 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods 10f05630 2014-08-25T19:36:20 Fixes a compilation error when ANGLE_DEFAULT_D3D11 is defined. Change-Id: I09853b4565d5458ce4c318611a6495ec265fa8de Reviewed-on: https://chromium-review.googlesource.com/213899 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill b547ddf5 2014-08-25T16:20:46 Fix interface block static use tracking. The current code couldn't handle some uses of interface blocks, such as blocks with instance names. BUG=angle:466 Change-Id: I0a3746f277af0538cede30232532c6788412da1c Reviewed-on: https://chromium-review.googlesource.com/213502 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 42bcf32e 2014-08-25T16:20:46 Refactor ShaderVariables to store fields in the base. Instead of only storing structure information in Varyings, Uniforms and Interface Block Fields, store it in the base class. Also only store base variable information for struct fields, instead of fully typed information. This works because stuff like interpolation type, invariance, and other properties are for the entire variable, not individual fields. Also add new fields for interface block instance name, varying invariance and structure name for all struct types. BUG=angle:466 Change-Id: If03fc071e6becb7aad6dea5093989bba7daee69e Reviewed-on: https://chromium-review.googlesource.com/213501 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Austin Kinross 6982260b 2014-08-12T15:51:37 Reduce CPU texture usage in D3D11 where possible Change-Id: I3186d78fa0a5c676611806c6f553c5c7ad06f56a Reviewed-on: https://chromium-review.googlesource.com/212118 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kenneth Russell db8ae16b 2014-08-25T19:02:35 Refactored TransformFeedback for multi-platform ANGLE and added tests. Added angle_implementation_unit_tests target designed for testing the cross-platform code in libGLESv2, and libGLESv2_static target as a dependency. The goal is to incorporate these tests into Chromium's angle_unittests target on all platforms; however, more work is needed to make libGLESv2's common code compile on non-Windows platforms, so this is an intermediate step. BUG=angle:719 Change-Id: Ifc44a779352294e857d6e913d9b997a60674c443 Reviewed-on: https://chromium-review.googlesource.com/214105 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill 6d113802 2014-08-25T15:47:52 Move some methods of VertexDataManager to helper methods. Refactoring patch only. BUG=angle:571 Change-Id: Ic318b4c4366e33b8d33f6003dd39f660f40d354a Reviewed-on: https://chromium-review.googlesource.com/210649 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill ae3000b4 2014-08-25T15:47:51 Move validation from IndexDataManager to the API. This validates all necessary buffer sizes for element array buffers in the validation layer, before we start the draw. BUG=angle:571 Change-Id: I602744ca1ea493e9f0f7e1ccbeb85fc4ae5c9f5a Reviewed-on: https://chromium-review.googlesource.com/210648 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 2b97681b 2014-08-25T15:47:49 Extract validation from VertexDataManager.cpp to the API. We can check for buffer overflow at draw validation time, before processing any vertex data. BUG=angle:571 Change-Id: I4f49629b98c17ca28e25baed74cad4ae5341b20f Reviewed-on: https://chromium-review.googlesource.com/210647 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 1fecbc85 2014-08-25T16:26:14 Hard-limit the number of uniform vectors in D3D11. Before the Caps were added, the maximum fragment and vertex shader uniform vectors were hard-limited to 1024. When increasing them to the D3D11 maximums, the WebGL test uniforms/gl-uniform-arrays would time out. Reverting the limit until the test can succeed with higher limits. BUG=407309 Change-Id: Ifb7015bdeb3d32d7dcd124cfedbea5f7e2c25a5e Reviewed-on: https://chromium-review.googlesource.com/213824 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 3b5c2dae 2014-08-19T15:23:32 Add a new invariant declaration operator. BUG=angle:711 Change-Id: I54a48b636a68c317b8d44ee2d578847b80095289 Reviewed-on: https://chromium-review.googlesource.com/213500 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 268b6bcd 2014-07-09T16:22:55 Clean up copyimage.h Change-Id: Ie4b81bb37dbbe6a9584dfc6a6c92670a9b73cda5 Reviewed-on: https://chromium-review.googlesource.com/207374 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods 70d457d8 2014-08-15T18:35:33 Adds a required EGL_BAD_MATCH case to eglMakeCurrent BUG=angle:723 Change-Id: I12bb763acc70cb0737adf460226242023357b368 Reviewed-on: https://chromium-review.googlesource.com/212701 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 3e3813f7 2014-08-25T13:58:16 Optimize dynamic buffers. In D3D11, we would previously always use a staging buffer to proxy data to the GPU. This change allows users which specify DYNAMIC_DRAW to skip the staging buffer as long as they only write to index or vertex buffers. This improves performance on all tested GPU vendors, but in D3D11 on AMD and Intel our SubData calls are still significantly slower than in D3D9. BUG=angle:705 BUG=365078 Change-Id: I4f83164176d67ff00119bdd0a6a80d7c84fd0f03 Reviewed-on: https://chromium-review.googlesource.com/213813 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill dbd74a09 2014-08-25T13:58:15 Add BufferStorage11::setData. This helper method will be useful for implementing dynamic buffers. BUG=angle:705 Change-Id: I8461a59724fb8866b36059c9ef5b838f072cc63a Reviewed-on: https://chromium-review.googlesource.com/213812 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 45965b10 2014-07-09T15:54:46 Clean up copyvertex.h * Move "private" functions into copyvertex.inl. * Capitalize global function names give them more descriptive names. * Use size_t for all dimensions. * Use uint8_t pointers instead of unsigned char pointers. Change-Id: I408cf7ebb28655c5811ad18979a20f4273d278cd Reviewed-on: https://chromium-review.googlesource.com/207373 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 301d161d 2014-07-09T10:34:37 Add caps for vertex and fragment shader limits from tables 6.31 and 6.32. BUG=angle:658 Change-Id: I98509aa16caf74c3e4e28852e8b59aedd903f03a Reviewed-on: https://chromium-review.googlesource.com/207372 Reviewed-by: Brandon Jones <bajones@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 900013cd 2014-07-07T11:32:19 Add caps from the 6.29 table. BUG=angle:658 Change-Id: I392f581b1aea445d60f507c1fa897c4348c1a137 Reviewed-on: https://chromium-review.googlesource.com/207371 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0f796ace 2014-08-25T10:33:24 Fix compilation error due to bad merge. Change-Id: I54b3e0423e41b86b28d93fdce8d4d2d3304d56cf Reviewed-on: https://chromium-review.googlesource.com/213822 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Cooper Partin 40f93a24 2014-08-06T13:39:58 Added check to avoid accessing possible NULL renderer pointer. Change-Id: I38524e7d3c74656902151e004d3aa47555531fd5 Reviewed-on: https://chromium-review.googlesource.com/211203 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Cooper Partin 75c42f45 2014-08-11T10:16:44 Fixed memory leak in Renderbuffer class. Offscreen objects backbuffer texture /shader resource view, depth stencil texture/shader resource views were leaking during swapchain resize operations. Change-Id: Iee83a14d043eecc465e6ffb8e21a6449def38e9b Reviewed-on: https://chromium-review.googlesource.com/211834 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang da5777cf 2014-07-11T09:52:58 Create an Error object to represent GL errors. BUG=angle:520 Change-Id: I1a54e6f308b5b0f310c725a7771af737a77ecd42 Reviewed-on: https://chromium-review.googlesource.com/209619 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill ef9d63ec 2014-08-04T10:48:02 Move the index range cache to gl::Buffer. Because we want to move all validation to the API layer, we need to move the index validation to the API layer. This means exposing the index cache to the validation layer. In the future we will probably want a way to skip index validation when it's not necessary, or the chosen back-end handles index validation on its own. BUG=angle:571 Change-Id: Iee1618e669bc28abf7e0709ca4a03b4727b1383e Reviewed-on: https://chromium-review.googlesource.com/210646 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 33a74bde 2014-08-18T15:47:59 Fix std140 UBO layouts. A call to "prePadding" instaed of "prePaddingString" was confusing the HLSL output engine. A separate bug was causing HLSL errors because HLSL puts all cbuffer members in a flattened namespace, which caused our internal padding variables to overlap. BUG=angle:725 Change-Id: I69a01fefa430a83e433385c64a532a69e6851ae8 Reviewed-on: https://chromium-review.googlesource.com/212930 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Nicolas Capens ffd7387a 2014-08-21T13:49:16 Prevent accessing more arguments than provided. BUG=390111 Change-Id: Iecc2ac2354a82cca937a823e5c588c662264e36c Reviewed-on: https://chromium-review.googlesource.com/213551 Tested-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 39b43463 2014-08-18T16:39:50 Use Range type for index ranges. This compacts a lot of parameter passing. Refactoring patch only. BUG=angle:571 Change-Id: Ic918478d0c6b81093bfea6154ce0f6bf1d2b5be2 Reviewed-on: https://chromium-review.googlesource.com/210645 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f41522b6 2014-08-18T16:39:49 Split vertex translation into helper methods. Refactoring patch only. BUG=angle:571 Change-Id: I17e8c1eb80bdf7c3ec7cc4bad4e70e81590e4a89 Reviewed-on: https://chromium-review.googlesource.com/210644 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5f438061 2014-08-20T16:38:34 Only set declaration operator if not already set. This allows us to return different operators from single declarations, which will be useful for treating invariant declarations as different operators. BUG=angle:711 Change-Id: Id278b91854bbefe8e635380d7b27198198236fef Reviewed-on: https://chromium-review.googlesource.com/212939 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 47e3ec08 2014-08-20T16:38:33 Add a helper method to parse invariant declarations. This pulls out more functionality from the grammar into simple c++ source files. BUG=angle:711 Change-Id: I19121d710dc1543585361cb53a0deb2ea0479db9 Reviewed-on: https://chromium-review.googlesource.com/212938 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 5c09702f 2014-08-20T16:38:32 Add a getNamedVariable helper method to TParseContext. This method will be useful in more than one place, since we need to get a TType from an indentifier when parsing invariant declarations. BUG=angle:711 Change-Id: I1c1befbdcc93ea626428fb4e313b8c6326c158f6 Reviewed-on: https://chromium-review.googlesource.com/212937 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Brandon Jones 6053a52e 2014-07-25T16:22:09 Moved some validation back to Texture, unified all TextureImpl variants BUG=angle:688 Change-Id: Ie2df18277c84345fceaa31d4f63f5cbbb47540c6 Reviewed-on: https://chromium-review.googlesource.com/211387 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org>
Jamie Madill b9b5c105 2014-08-20T17:28:54 Rename intermediate.h to Intermediate.h. This was breaking the Linux build. Change-Id: I8f63527cfa37ee774ea5d1e6eb0043a4c7ccc734 Reviewed-on: https://chromium-review.googlesource.com/213300 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Jamie Madill cfa33e62 2014-08-19T15:30:41 Call addRef when creating a new Fence Sync object. BUG=angle:728 Change-Id: Iafd838c3ceb1a88afd4d3b0994e8d841945df499 Reviewed-on: https://chromium-review.googlesource.com/213142 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b1a85f48 2014-08-19T15:23:24 Rename compiler intermediate source files. This prevents confusion between "TIntermediate" and "TIntermNode". BUG=angle:711 Change-Id: Ib7a086382a479db3f77bf2ab06ce321aa7b35d13 Reviewed-on: https://chromium-review.googlesource.com/212936 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 299fcf29 2014-08-06T16:46:54 Fix swizzle formats being assigned incorrectly. * Non-4 component formats cannot be used as swizzle formats. * Unsized formats should not have swizzle formats. BUG=angle:721 Change-Id: Ic4e2642f5dc4c9811768961fbab00f6edd200ce1 Reviewed-on: https://chromium-review.googlesource.com/211241 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Shannon Woods b8c0a832 2014-08-15T16:41:12 Amend comment about nameless structs & layout qualifiers Change-Id: I1177c808bffd2beba7d52bd8f8869125a1624698 Reviewed-on: https://chromium-review.googlesource.com/212700 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Brandon Jones 3b579e36 2014-08-08T10:54:25 Minor cleanup to Query constructor to normalize it with other interfaces Change-Id: I562245cf6323edc7a127480e8de6ac16c6f97c03 Reviewed-on: https://chromium-review.googlesource.com/211641 Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 20ba154c 2014-08-11T17:14:44 Initialize TranslatedAttributes BUG=398337 Uninitialized TranslatedAttributes were causing false positives in checks for nonzero attrib divisor. Change-Id: I44655d3fbe4f5478ca3757e05db38799d014e4c7 Reviewed-on: https://chromium-review.googlesource.com/211931 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 09cf736b 2014-08-08T15:41:01 Fix application of vertex divisor for non-instanced draws in D3D9 BUG=398337 *Re-land* ANGLE_instanced_arrays defines the behavior of the non-instanced draw calls (glDrawArrays, glDrawElements) such that they behave as single-instance draws, so the vertex divisor should still apply. We were handling this correctly in D3D11, but not D3D9. This fixes a new WebGL conformance test: https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/angle-instanced-arrays.html Change-Id: I5ed09d41229c8996a78a3b55893c6a655a423644 Reviewed-on: https://chromium-review.googlesource.com/211930 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Shannon Woods bc75f36b 2014-08-11T14:08:19 Fix nameless struct handling. BUG=401296 The addition of layout qualifier handling in es3 development inadvertently broke handling of nameless structs. Change-Id: I805bab7a981d1f7f6227ae043720296fc3454662 Reviewed-on: https://chromium-review.googlesource.com/211860 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 6f4423af 2014-08-10T13:54:45 Revert "Fix application of vertex divisor for non-instanced draws in D3D9" Other issues turn up on the FYI bots with this patch applied; reverting until this is investigated further. This reverts commit 9f6907bfdd4cf95d20408831b1776a6efd221ab3. Change-Id: Ib30c51b2c905e87973c73b06baa4b8ebba31d210 Reviewed-on: https://chromium-review.googlesource.com/211683 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Shannon Woods 9f6907bf 2014-08-08T15:41:01 Fix application of vertex divisor for non-instanced draws in D3D9 BUG=398337 ANGLE_instanced_arrays defines the behavior of the non-instanced draw calls (glDrawArrays, glDrawElements) such that they behave as single-instance draws, so the vertex divisor should still apply. We were handling this correctly in D3D11, but not D3D9. This fixes a new WebGL conformance test: https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/angle-instanced-arrays.html Change-Id: Ib50e189d866d6dc97612e46460db4ca1723b3662 Reviewed-on: https://chromium-review.googlesource.com/211445 Tested-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Brandon Jones <bajones@chromium.org>
Zhenyao Mo daf56572 2014-08-06T16:18:30 For SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS, assign precision to temp variables. Otherwise on Windows or other platforms with GLES backend, using this workaround will trigger shader compile failure. For the moment, to simplify the workaround, for any missing precisions in float, we always assign the highest available precion to it. BUG=angle:695 TEST=webgl conformance tests Change-Id: I810579442bc7fc61d6a52b76aff31a779046fa22 Reviewed-on: https://chromium-review.googlesource.com/211253 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Brandon Jones cef06ff2 2014-08-05T13:27:48 Unifying the various texture interfaces where possible Also fixed diamond inheritance pattern that was causing trouble on Windows 8 BUG=angle:688, angle:720 Change-Id: I678826bd4f3927c68ca1eb2e018dbb5aad33a8cc Reviewed-on: https://chromium-review.googlesource.com/211037 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Brandon Jones <bajones@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhenyao Mo e740addb 2014-07-18T17:01:01 Add compiler option SH_REGENERATE_STRUCT_NAMES. BUG=angle:701 TEST=webgl conformance tests Change-Id: I13b35900956e7d840d5891a5bab90a400347cd6f Reviewed-on: https://chromium-review.googlesource.com/209229 Tested-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill a2ad4e8a 2014-07-17T14:16:32 Export shader variables from the translator DLL. This will allow us to use these methods when compiling the translator as a DLL. BUG=angle:466,697 Change-Id: Ic9169fb7c69fe0bf5f98addfc128a30ee6b2159d Reviewed-on: https://chromium-review.googlesource.com/208752 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Jamie Madill d9ba4f73 2014-08-04T10:47:59 Move implementation of hasMappedBuffer to State. Refactoring patch only. BUG=angle:571 Change-Id: Ib9f3145eaa457d94e488fd42eb4c4b9133768996 Reviewed-on: https://chromium-review.googlesource.com/210643 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang baadf23a 2014-08-04T13:58:02 Fix incorrect validation of ES3 internal format/format/type combinations. * Fix wrong internal format being passed to ValidateTexImageFormatCombination. * Fix ValidateTexImageFormatCombination validating the format instead of internal format for general support. * Fix support checks for format and type comparing with wrong format and type fields. * Add an early-out in format and type check loop to reduce iterations. BUG=angle:658 Change-Id: I05e1b9f58b2e5ac4b5e1c0fa5a45cf37fb6a4ccd Reviewed-on: https://chromium-review.googlesource.com/210884 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 366ac1e3 2014-07-07T14:37:57 Remove the unusused Renderer::getSRGBSupport method. BUG=angle:658 Change-Id: I3c8331dfc9c1046b528e9c4a7da3411d84f8ae3c Reviewed-on: https://chromium-review.googlesource.com/207120 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill f049e804 2014-08-04T13:10:27 Fix wrong comparison in Buffer ASSERT. We were using >1 instead of <=1. Caused false errors in Debug. BUG=angle:716 Change-Id: I7072df99f208bd2e0a687143faeef6c9be79728e Reviewed-on: https://chromium-review.googlesource.com/210990 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 91fa9ce4 2014-07-04T17:30:27 Simplify formatutils9 by exposing the internal structures. BUG=angle:658 Change-Id: I8134cde4d72796c51613594e15aded86e83c4af7 Reviewed-on: https://chromium-review.googlesource.com/206837 Reviewed-by: Nicolas Capens <capn@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 6ba451ba 2014-08-04T11:59:23 Fix single buffer copies. In D3D11, the device doesn't allow overlapped buffer copies unless the D3D11_FEATURE_DATA_D3D11_OPTIONS::CopyWithOverlap feature is enabled. This isn't technically available until D3D11.1. Get around the restriction by using a different storage buffer as the source of the copy. Fixes funcional.buffer.copy.single_buffer.* in dEQP. BUG=angle:715 Change-Id: I03fea8a1c6180a29e07e05022e3454524e320803 Reviewed-on: https://chromium-review.googlesource.com/210902 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 2c976a44 2014-08-04T11:37:53 Prettify HLSL compile retry error messages. We were inserting excess newlines in several places. Change-Id: I746334d3696e9e3be585ab02074384ae63535ea5 Reviewed-on: https://chromium-review.googlesource.com/210823 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 9aa00bbc 2014-07-07T12:33:25 Simplify formatutils11 by exposing the internal structures. BUG=angle:658 Change-Id: I8a4ce5f45054a1fa829a9647a94cf2bd0ba93bc0 Reviewed-on: https://chromium-review.googlesource.com/206836 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 1c28e1f0 2014-08-04T11:37:54 Fix shaders with invariant keyword. We would trigger assertion failures in Debug mode, and fail to parse and translate correctly in Release. BUG=angle:711 Change-Id: Ibb7f33b288376617598578f48c7bbdbdec044279 Reviewed-on: https://chromium-review.googlesource.com/210822 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill f4e39bfd 2014-08-01T17:22:17 Fix non-square matrix-to-matrix constructors. This fixes some broken tests in dEQP: functional.shaders.conversions.matrix_to_matrix BUG=angle:712 Change-Id: I0538595f2913a2c1d4f0da901d65d608a6580d19 Reviewed-on: https://chromium-review.googlesource.com/210882 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill cf3af0bd 2014-08-01T17:22:16 Fix non-square scalar-to-matrix constructors. This fixes some broken tests in dEQP: functional.shaders.conversions.scalar_to_matrix BUG=angle:712 Change-Id: Ia01d720307ea6ca70da266b2085a878eaaab2412 Reviewed-on: https://chromium-review.googlesource.com/210881 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill aff8084b 2014-08-04T10:47:56 Fix VertexBuffer11::getSpaceRequired for instanced attribs. The computation could copy more data than needed. Although benign it could cause performance degredation compared to the D3D9 back end. Change-Id: I3cf1dc79085c33d44040fd55153e63a4e5e63cb1 Reviewed-on: https://chromium-review.googlesource.com/210640 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Geoff Lang 5d601382 2014-07-22T15:14:06 Simplify formatutils.h by exposing the info structures. Removed all the separate query functions and simply expose the internal info structures. This reduces the number of std::map/std::set operations that were hidden behind the API. Moved the validation tables for ES3 format combinations and effective internal formats into validationES3.cpp so that formatutils.h only has generic GL format queries. BUG=angle:658 Change-Id: Ieb60d42b8eafcdb4f21dcbec130b39478ce5f7c5 Reviewed-on: https://chromium-review.googlesource.com/206835 Reviewed-by: Nicolas Capens <capn@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5c1e58d0 2014-08-04T10:47:58 Add missing cache clears to D3D buffer classes. BUG=angle:709 Change-Id: I93f92b916a0da26975cd459399cc2873cb4ab9f0 Reviewed-on: https://chromium-review.googlesource.com/210642 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill cfaaf72f 2014-07-31T10:47:54 Fix CopyBufferSubData. We were passing the arguments from the gl::Buffer stub to the implementation class, which was breaking the call. Also clean up a few comments. BUG=angle:709 Change-Id: Ib92a36d1c52d60d8929f567d0daf54e9d6a2d127 Reviewed-on: https://chromium-review.googlesource.com/210641 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 7bf0c867 2014-08-01T10:04:09 Fix GN build for libEGL. Our build in GN differed slightly from our gyp build, causing the linker to complain about inconsistent linkage. Also remove some stray definitions of EGLAPI from our headers. Change-Id: I5d3a09ccb0cec528ead33944ce0996cceed32d86 Reviewed-on: https://chromium-review.googlesource.com/210821 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill e294bb87 2014-07-17T14:16:26 Add new shader inspection APIs. Each new entry point corresponds to one of the variable types: varyings, attributes, uniforms, output variables, and interface blocks. They return a pointer to the vector with all of the parsed variables, which then the app can copy to its own memory. Currently we do not support the staticUse field in the HLSL translator. BUG=angle:466 Change-Id: I7dc09e761ab070feef5360ad27740110c44853b3 Reviewed-on: https://chromium-review.googlesource.com/208750 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Nicolas Capens <capn@chromium.org>
Jamie Madill 13cfd276 2014-07-17T14:16:28 Move shader variables header to include folder. This allows the API to query for clear type introspection into the parsed GL types from the translator. The returned types are not expanded and have properly nested fields. This patch uses the types from ShaderVars.h to return GL type information. The app must include this header to get access to the types structs. BUG=angle:466 Change-Id: I28ad0d6f11a964804dd234ef0d00651f665d1ae3 Reviewed-on: https://chromium-review.googlesource.com/208751 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org>