Age | Commit message (Collapse) | Author |
|
BUG=425668,angle:799
Change-Id: Ifd4200774665f22d5f6ed196862192585d0799c0
Reviewed-on: https://chromium-review.googlesource.com/224481
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/224790
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
Looks like the D3D9 D32 format isn't available on most GPUs (and doesn't
exist in D3D11) so back GL_DEPTH_COMPONENT32_OES with D24S8 instead to
match D3D11.
BUG=angle:750
Change-Id: I0f7a124544c1c14ba21db20fbf6765d07e244966
Reviewed-on: https://chromium-review.googlesource.com/219080
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
In some cases, where the user would create a buffer with NULL (empty)
data, we would attempt to dereference NULL when drawing with the
buffer as a vertex attribute.
BUG=angle:749
Change-Id: Ied5ecbab4608c85890cdf7cc32a8dae46989e33b
Reviewed-on: https://chromium-review.googlesource.com/219090
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
|
|
This class provides no added benefit now that we've scrapped the
type-specialized classes. We can squash it's functionality into
TextureStorage instead.
BUG=angle:741
Change-Id: I04984806719a01f299986265fe09b3cccf04dca5
Reviewed-on: https://chromium-review.googlesource.com/218316
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
Since there are no longer any significant differences in the child
classes of TextureStorageInterface, we can scrap the different
implementations. This involves changing the function names of some
Renderer functions which relied on overloading.
BUG=angle:741
Change-Id: I074797e4ac0bf3ecf8fe4bddf84eaed28b1a2c23
Reviewed-on: https://chromium-review.googlesource.com/218315
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
Using a little bit more of code repetition allows us to move the
implementation of the mipmaps to a simple virtual interface in
TextureStorage.
BUG=angle:741
Change-Id: I7661d0cc3bdb02b646da0802cba285650d7832b2
Reviewed-on: https://chromium-review.googlesource.com/218314
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
Also move getRenderTargetSerial to the TextureStorageInterface
base class, since it shares a common interface.
BUG=angle:741
Change-Id: I1bc1cfac6426e241ac91d373884a7dd8a1c5b188
Reviewed-on: https://chromium-review.googlesource.com/218313
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:520
Change-Id: Id003e66b2acbf37dbbe66aaca2fa336c3c884be2
Reviewed-on: https://chromium-review.googlesource.com/217102
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
Change-Id: I1e11f54b0ae245cdd7e090ab0748821738ad6314
Reviewed-on: https://chromium-review.googlesource.com/218761
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
BUG=angle:685
Change-Id: I7af97a95deee69fbdebca2b57403244f45516e67
Reviewed-on: https://chromium-review.googlesource.com/216564
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
Also change ImageIndex to allow invalid indexes for layer. In 3D
indexes, sometimes the layer parameter is invalid, indicating we
index an entire mip level instead of a layer of a mip level.
BUG=angle:741
Change-Id: I7b410f9aaf568f215bb93ae063934669a8fa09bd
Reviewed-on: https://chromium-review.googlesource.com/218312
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
If transform feedback is active, primitives still need to be rendered even
if no pixels are written to the framebuffer.
Instead of checking for active transform feedback, simply remove the draw
call skipping optimization since it is most likely an application mistake to
draw with a zero sized viewport and we shouldn't optimize for this case.
This change doesn't affect the clear calls because the viewport is set to the
framebuffer size which is non-zero.
BUG=angle:743
Change-Id: I04af9d6de5aad3040e3c6b3c24990e107e21ad36
Reviewed-on: https://chromium-review.googlesource.com/218508
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:738
Change-Id: I0599840fc79d571230acf26105d512322bcffdcd
Reviewed-on: https://chromium-review.googlesource.com/214108
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
The registers variable became a pointer but this error check was not
updated.
BUG=angle:743
Change-Id: Id2cd7b5ba39180281a3bbc408cd7c31bc663500c
Reviewed-on: https://chromium-review.googlesource.com/218507
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
This paves the way for setting data on the TextureStorage directly
instead of working through the Image objects.
BUG=angle:741
Change-Id: I3be3d5f9b2e45707c1630b74ad3f4789e034c3fd
Reviewed-on: https://chromium-review.googlesource.com/218311
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
The comparator was actually a <= operator, while sort requires a
strict < operator. This was causing a potential assertion failure.
Bug report from Kerim Borchaev.
BUG=angle:742
Change-Id: I37c2925ab0b85e70ee1b2be3c72c6ddc062e8d28
Reviewed-on: https://chromium-review.googlesource.com/218506
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:520
Change-Id: Idb3c50235a7029e72c58bc202aba0cfab735202a
Reviewed-on: https://chromium-review.googlesource.com/218510
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
These were causing build failures under GCC.
Change-Id: Iba19ed166f909fe559d19731f31849770619f412
Reviewed-on: https://chromium-review.googlesource.com/218580
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
|
|
BUG=angle:520
Change-Id: If8f2bb1c4de7b9cc30861a06aab1d89c97305b26
Reviewed-on: https://chromium-review.googlesource.com/216699
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:731
Change-Id: Ia62ec9a912c8bd63fcee51ca206d52688dd999da
Reviewed-on: https://chromium-review.googlesource.com/217495
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Brandon Jones <bajones@chromium.org>
|
|
Ideally we could store a render target serial in the render target
itself. For now, this helper function allows us to finally stop
exposing rx::RenderTarget from gl::Texture.
BUG=angle:732
Change-Id: I4ffc5e0af6f0542212ad4e74adced21ebbd89462
Reviewed-on: https://chromium-review.googlesource.com/217330
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
|
|
We would like to stop exposing rx::RenderTarget to any GL-layer
code, like the Context, or Framebuffer. Then we can pull any
necessary information inside the Renderer back-ends.
BUG=angle:732
Change-Id: Ifa35218f097c528e616d732bda4bcd8e5f1c3843
Reviewed-on: https://chromium-review.googlesource.com/217029
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
|
|
Change-Id: Ie7fba8a0fd0475a395205139c4f7169cc94e61b7
Reviewed-on: https://chromium-review.googlesource.com/217510
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Shannon Woods <shannonwoods@chromium.org>
|
|
BUG=angle:520
Change-Id: Ifc249058a3ed3ffffe163a9e3ec21d6fc8c75bd0
Reviewed-on: https://chromium-review.googlesource.com/217101
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:520
Change-Id: I111e4fd830ad19f6a4ff50749ba891fc14f9154b
Reviewed-on: https://chromium-review.googlesource.com/217100
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:520
Change-Id: Ice0a04b296af6c0a61a604f629b08603e594bb0b
Reviewed-on: https://chromium-review.googlesource.com/216919
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:520
Change-Id: I14e2a84c6d2e6f98a50395b63ac206e32bc10f8b
Reviewed-on: https://chromium-review.googlesource.com/216918
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
Queries for the FBO attachment Textures and Renderbuffers allow us
more options than specific methods for querying the texture
storage or texture serial.
BUG=angle:732
Change-Id: Ieb4ddca3955fcf716dbf54331524d0c1e25fe946
Reviewed-on: https://chromium-review.googlesource.com/217028
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
|
|
For highly dynamic data, which gets updated every frame, or almost
every frame, we're better off using our existing dynamic buffer
path. We could further optimize the dynamic buffer path by only
uploading changed data every frame.
BUG=angle:705
Change-Id: Icbb357b889be789b30f73067f75b13664c806929
Reviewed-on: https://chromium-review.googlesource.com/217280
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
|
|
This is gonna take a while...
BUG=angle:731
Change-Id: Ief72c3361b6429f3f6e0bc2d2ea0810d523ff178
Reviewed-on: https://chromium-review.googlesource.com/215661
Tested-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
|
|
This reverts commit 3e3813f787ee5e8bb7808eed539a606a4e2e3fd3.
Conflicts:
src/libGLESv2/renderer/d3d/d3d11/Buffer11.cpp
Change-Id: I6470059672d3b377ce0fafbc8b637318a91f62c8
Reviewed-on: https://chromium-review.googlesource.com/217106
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
Since the loop always goes up to MAX_VERTEX_ATTRIBS, the ASSERTION may be
triggered even though no more attributes are enabled.
BUG=angle:740
Change-Id: I2bb30d7e9f426ae1a0b8250e65c1fd02107973ac
Reviewed-on: https://chromium-review.googlesource.com/217027
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
gl::error.
BUG=angle:520
Change-Id: I2ead221e7d1f02cf088b60d0e98376fcd68dde8e
Reviewed-on: https://chromium-review.googlesource.com/211441
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:520
Change-Id: I474a6ed29b882963f7f3425515e7d65f8f69b3e4
Reviewed-on: https://chromium-review.googlesource.com/211440
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
BUG=angle:520
Change-Id: I4b6af8e2d4fae97639518e2acd26e2d4be93c925
Reviewed-on: https://chromium-review.googlesource.com/209881
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
|
|
Change-Id: I2b223c9b80faa3ff2a0f94bd52ca73edf3d67cf7
Reviewed-on: https://chromium-review.googlesource.com/216273
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
This will simplify the code somewhat. It should no longer be
necessary now that we have the nVidia workaround.
BUG=angle:705
Change-Id: I1abe1abd9f03472341ce4315975a76c56b252bb4
Reviewed-on: https://chromium-review.googlesource.com/216111
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|