src/libGLESv2/renderer


Log

Author Commit Date CI Message
Geoff Lang 1e40d1c9 2014-03-18T22:41:22 Revert "Add remaining transform feedback queries." This reverts commit 4251b75830f91df68df80a096a0713830c73b1cc. Change-Id: I95afebcaf91ee38a121df20f403eb06f19b2510a Reviewed-on: https://chromium-review.googlesource.com/190560 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 4251b758 2014-02-03T14:27:56 Add remaining transform feedback queries. BUG=angle:493 Change-Id: Ibeae41da2b83ab63d237912602ba5d2aad0bbec2 Reviewed-on: https://chromium-review.googlesource.com/185036 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill e708fc02 2014-03-17T10:23:18 Only use map-write instead of map-write-discard. In D3D11, map-discard is reserved for DYNAMIC usage buffer, which are resources that live on the GPU. Staging buffers don't have the notion of map-discard, and using them with discard gives a D3D11 error. This patch fixes crashes in dEQP buffer.map.write.invalidate. BUG=angle:587 Change-Id: Ie225e72d4e226c69e73826c9fb67bbb940bbc466 Reviewed-on: https://chromium-review.googlesource.com/190072 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0c66720a 2014-03-17T10:06:09 Fix unsigned integer R10G10B10A2 vertex formats. We were incorrectly setting the signed parameter to true in the vertex format table. This fixes a dEQP test in vertex_arrays.output_types. BUG=angle:586 Change-Id: I84dcdee89a95369cc8e41d451f96dbb8daa37b6d Reviewed-on: https://chromium-review.googlesource.com/190056 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 626d54e8 2014-02-07T14:24:12 Disable MRT support when using D3D10 feature levels. D3D10 cards perform poorly when the pixel shader outputs to multiple render targets that are not bound. BUG=325581 Change-Id: I13f6f98861ffeb77cd21f7401ded4425e4ea7841 Reviewed-on: https://chromium-review.googlesource.com/185400 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/190341
Geoff Lang 7840b170 2014-03-13T11:20:44 Cache bound vertex and index buffers by ID3D11Buffer instead of serial. Since a DirectBuffer11 may return different buffers from getBuffer depending on the required buffer type and if the internal buffers are dirty or not, the current serial is not reliable. Use the actual buffer object so that there can be no missmatch. BUG=350581 Change-Id: I6ea1616273346117a17646edb68e6518e584f2b1 Reviewed-on: https://chromium-review.googlesource.com/189435 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang eeba6e1e 2014-02-03T13:12:30 Added methods for applying the current transform feedback buffers. BUG=angle:495 Change-Id: I2d9fbf9c245bc519b8c5a724ca3912aaa7a23d97 Reviewed-on: https://chromium-review.googlesource.com/185034 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill ca442ba4 2014-03-05T09:53:30 Fix default bits for 3-channel un-normalized int. GPU conversion means we should be using a default of 1 as for int types instead of the MAXINT value for normalized types. Fixes the WebGL test for vertex attribs with offsets. BUG=angle:550 Change-Id: I1aa1b1bae2282e8eda96366adeec492ffe1d5728 Reviewed-on: https://chromium-review.googlesource.com/188433 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2f612290 2014-03-05T09:53:29 Combine widen and defaultBits params of copyVertexData. Since we never, and never will use a default value of zero for the alpha channel, we can use a value of zero to indicate no widening. This has the benefit of not needing a default value where it does not apply. BUG=angle:550 Change-Id: Ifdfedcb16039aa1d7f8ee644b65c6b4d89f9a384 Reviewed-on: https://chromium-review.googlesource.com/188432 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 0027fa9f 2014-02-20T14:26:42 Emulate integer cube texture sampling as an array of six 2D textures. BUG=angle:525 Change-Id: I3c3ec2cecebf9e745f0c02a132433e3076a6fdea Reviewed-on: https://chromium-review.googlesource.com/187534 Tested-by: Nicolas Capens <nicolascapens@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9533dcd3 2014-02-24T15:27:20 Implement BufferStorage11 mapping functions. BUG=angle:565 Change-Id: I4f416981bc63098f0364653ff279b3f54eeb756e Reviewed-on: https://chromium-review.googlesource.com/186979 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill d9fa3b94 2014-02-19T10:30:51 Add Map-related stubs to BufferStorage. BUG=angle:565 Change-Id: I7db13e8e5fb386f5e40dd2a2e273e35f01c1f28c Reviewed-on: https://chromium-review.googlesource.com/186978 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 5d64cafa 2014-02-11T10:23:34 Fix multiple variables named i in the same scope. Change-Id: I575e1d80d103f554892feb6369e9b76c199bf20a Reviewed-on: https://chromium-review.googlesource.com/185881 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 5c9a29ab 2014-02-11T10:26:24 Fix redefinition of variables. Change-Id: I04b0577c8af45fca938d8fb7cf0b9fe2eadafcf2 Reviewed-on: https://chromium-review.googlesource.com/185883 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 7bee6395 2014-02-11T10:25:07 Fix incorrect cast. Change-Id: I1a41593dbe598dfef301c9df0f47a5105b5705cf Reviewed-on: https://chromium-review.googlesource.com/185882 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 8e32884a 2014-02-10T13:11:20 Remove dependence on dxguid.lib for release builds. BUG=angle:559 Change-Id: I10c93b312b4bf206e45d061eace2d00e598403bd Reviewed-on: https://chromium-review.googlesource.com/185690 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 94a9089b 2014-02-18T17:14:19 Detect cross-process HWNDs and verify DXGI 1.2 exists in D3D11. DXGI 1.2 is required to create a swap chain for a HWND owned by another process. This fix will allow us to fall back to creating a Renderer9 if DXGI 1.2 is not available instead of failing to create the swap chain later. BUG=angle:562 Change-Id: I01b08ffb262bc3f9c86d244168df14eba52c5bdc Reviewed-on: https://chromium-review.googlesource.com/186980 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 496123fd 2014-02-12T11:33:51 Implement EXT_blend_minmax. BUG=angle:555 Change-Id: I1ae6a9783e718d16ee08bda5463f11cd52ad0967 Reviewed-on: https://chromium-review.googlesource.com/186123 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 2a419244 2014-02-10T13:00:44 Add defines to enable or disable specific renderers. BUG=angle:559 Change-Id: I88c168205b142701ec843aa394c82c3a5857ed0d Reviewed-on: https://chromium-review.googlesource.com/185569 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill d2d648cc 2014-01-29T09:27:10 Enable GPU dynamic conversion for unnormalized int formats. This patch turns on the dynamic conversion logic for integer formats that we must convert to floating point for ESSL 1.0 compatibility. The converted formats are 1, 2 and 4 channel unnormalized integer. BUG=angle:560 Change-Id: I3bcc45f1103290613029bc54fdd6012dddb0a03d Reviewed-on: https://chromium-review.googlesource.com/186700 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang dad5ed39 2014-02-10T12:59:17 Refactor HLSL compilation out of Renderer. This moves the start-up and tear-down code for D3DCompiler.dll into an object that Renderer9 and Renderer11 use. This will help future efforts to remove references to HLSL at the GL/Renderer interface level. BUG=angle:558 Change-Id: I18fcf9b237265d69c1d7d2ea345696c8fd31df29 Reviewed-on: https://chromium-review.googlesource.com/185568 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c5a83000 2014-02-14T16:41:25 Store multiple vertex executables in the program binary. With dynamic vertex conversion the GPU, we will have different input layouts resulting in different executables. This patch adds a way of mapping the input layouts to vertex executables. BUG=angle:560 Change-Id: Ie36f2f8ac2dfcb96f562af577d31f57d6d89b447 Reviewed-on: https://chromium-review.googlesource.com/185192 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5f562735 2014-02-14T16:41:24 Moved all HLSL-related code from ProgramBinary to DynamicHLSL. DynamicHLSL encapsulates all HLSL generation we need outside the the shader translator, such as for linking between input and output stages and point sprite geometry shaders. BUG=angle:560 Change-Id: Ib5079aa102000a7c37b166bcbe26b09cc82f8932 Reviewed-on: https://chromium-review.googlesource.com/185191 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang e8bc3193 2014-02-14T13:04:03 Optimize masked clearing of missing channels. Instead of doing a masked clear when a texture has mismatched channel counts, set the clear color to the default for the missing channels and do a regular clear. This catches es3proto up to master in terms of clear performance. BUG=angle:557 Change-Id: I4f16976154af7735f5bb2b0b17adb3a264872ec0 Reviewed-on: https://chromium-review.googlesource.com/186611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 5f6937ca 2014-02-12T17:15:22 Align static and streaming vertex data to 16-byte boundaries. Certain vertex formats using fewer than 4 bytes could confuse our buffer code, giving us improperly aligned offsets. Aligning vertex data across the board should fix the problem, and minimal cost. Change-Id: I6884b4ddcfb91ef309a970593aaf7932cb65712e Reviewed-on: https://chromium-review.googlesource.com/185196 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 7ea42a55 2014-02-10T12:49:15 Move ShaderCache.h to the d3d directory. Change-Id: I56e0f5ff11cebd8b9415081b930a804dcce9530c Reviewed-on: https://chromium-review.googlesource.com/185566 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 0bf3a982 2014-02-11T09:40:48 Fix variable being used to initialize itself. Change-Id: Ied10d866627485c6cd3eb09e23c14937efc465f4 Reviewed-on: https://chromium-review.googlesource.com/185864 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 1cd1b213 2014-02-11T09:42:27 Fix wrong variable being compared. Change-Id: I83b68286b6f3dd369081cb2188af27c86b3de6eb Reviewed-on: https://chromium-review.googlesource.com/185865 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 03ef7406 2014-02-11T09:40:20 Fix comparing blend states with the wrong structure size. Change-Id: I0e4c79cb7eaacf5403203b7b65094a54405ad47a Reviewed-on: https://chromium-review.googlesource.com/185863 Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 37dde692 2014-01-31T16:34:54 Add support for transform feedback queries. Change-Id: I0aab43b146f87259898db57acb9f74fdbfdb1b96 Reviewed-on: https://chromium-review.googlesource.com/184580 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 0550d038 2014-01-30T11:29:07 Implement GL_RASTERIZER_DISCARD. BUG=angle:498 Change-Id: Ib60c39e206003ae67c93769e35f7f9ef790ce9f4 Reviewed-on: https://chromium-review.googlesource.com/184396 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill a5e44c92 2014-02-04T16:04:15 Relax alignment restrictions to allow more direct storage. Our restriction to 4-byte alignments caused us to always convert formats like R8 or R16, or R8G8 instead of allowing D3D to handle these formats naturally. From experimentation the proper rule seems to be "4-bytes, unless the vertex format is 1- or 2-byte size." I couldn't find supporting documentation on MSDN, but it seems common sense. Change-Id: I9e38fe86790e34024d1ae912a809a3d3cdc02ccf Reviewed-on: https://chromium-review.googlesource.com/184523 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill a5d67475 2014-02-04T16:04:13 Remove VertexBuffer::requiresConversion. Since we now have Renderer methods to query formats for vertex inputs, we can get rid of the remaining calls to VertexBuffer which we used to query properties of vertex formats. Change-Id: I9e57d1d9bf80296aef271877fdd97a16d29114af Reviewed-on: https://chromium-review.googlesource.com/184522 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 95ffb868 2014-01-29T09:26:59 Add vertex format queries to Renderer. With the new support for vertex formats living in the format utils, we can use the Renderer class to query vertex properties instead of the VertexBuffer class. Change-Id: Id76bd4dbf63855016faccef703521887f50da3b9 Reviewed-on: https://chromium-review.googlesource.com/184521 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 80177879 2014-02-04T16:04:10 Move D3D9 vertex format tables to formatutils9. Vertex format information is useful for querying format properties with the new vertex translation logic with dynamic shaders. Change-Id: I1935c75f1e3920dc1d4a364a2d6968c82692e476 Reviewed-on: https://chromium-review.googlesource.com/184520 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill 7ab02faf 2014-02-04T16:04:08 Add D3D11 vertex format tables to our format utils. Moving the vertex format information to a globally accessible helper file makes them available for the dynamic shaders logic. Change-Id: I67d6280c0603d9c601ca504751c8905677c2426f Reviewed-on: https://chromium-review.googlesource.com/184399 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3078d0f7 2014-02-04T16:04:06 Add VertexFormat internal struct to represent vertex inputs. A VertexFormat is similar to a simplified VertexAttribute, without extra unncessary data. VertexFormats will be useful for GPU vertex conversions with dynamic shader compilation. Change-Id: I4e60e0a12d5f081fb52d95c8977c43d481b33bff Reviewed-on: https://chromium-review.googlesource.com/184398 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8ff21aea 2014-02-04T16:04:05 Move storage for uniform blocks to the program binary. With dynamic shaders we may have multiple shader executables per program binary. We must store the uniforms outside the executable, in the program binary, to be consistent between variations. Change-Id: I1b29a5d78c72dede8562d4878569b609536ba074 Reviewed-on: https://chromium-review.googlesource.com/183586 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c47a678a 2014-02-04T16:04:03 Move the storage for uniform blocks to its own class. With dynamic shaders we may have multiple shader executables per program binary. We must store the uniforms outside the executable, in the program binary, to be consistent between variations. Change-Id: I1bec83dfb83ee9bb422448b157338a46e8e7ba56 Reviewed-on: https://chromium-review.googlesource.com/183585 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang ecc8b6f4 2014-01-30T10:44:23 Refactor BufferStorage11. In preparation for transform feedback, BufferStorage11 needs to be able to handle a non-staging buffer being updated. Each D3D11 buffer now has an incrementing data revision associated with it so the most up-to-date buffer is always known. Staging buffers are now represented like any other DirectBuffer. Change-Id: I6e881867cb2bd02d600213d08cce3ebba316c525 Reviewed-on: https://chromium-review.googlesource.com/184395 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 826f3d30 2014-01-29T09:26:49 Add a GetComponentType method to query a DXGI format. Also add a few missing DXGI formats related to vertex inputs. Change-Id: Ia39234a164000d11eef3806ba4f06b6426f1cbb7 Reviewed-on: https://chromium-review.googlesource.com/183584 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 9eeecfc2 2014-01-29T09:26:48 Split DXGI format info to a GL mapping and info block. The GL mapping depends on context client version (for certain depth textures), but the DXGI base format info is consistent across versions. Also add DXGI component type information to the table, and add a few missing formats related to vertex inputs. Change-Id: I2d1a8ca92b1cb39f4592d94d7d435ae0ada1de65 Reviewed-on: https://chromium-review.googlesource.com/183583 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6246dc8f 2014-01-29T09:26:47 Track dirty D3D shaders instead of program serial. With dynamic shaders, we can have multiple vertex shaders in one program binary. Hence the binary serial by itself isn't enough to determine when we need to apply new shaders to D3D. Change-Id: I5a8b8616d353b506790ffc809e2d459bfc2b831d Reviewed-on: https://chromium-review.googlesource.com/184370 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 648c9683 2014-01-21T16:50:58 Minor optimizations to texture functions. By shuffling some parameters and calls around we can reduce the number of function calls we run for texture operations. Change-Id: If6d14cb6dff668cdfcb2f1fe6705e0d488dbc03f Reviewed-on: https://chromium-review.googlesource.com/183582 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill ec91cd32 2014-01-21T16:38:12 Clamp stencil reference value to D3D11 8-bit limitations. D3D11 can only mask 8 bits of a stencil reference value, so the upper bits are ignored. GL, however, expects the reference value to be able to scale to 32-bits. We will expect to fail certain edge cases where the reference value, and mask, both use particular 9+ bit values. Change-Id: I8c7451270d9e40310f4154955d38e51bbf7de4df Reviewed-on: https://chromium-review.googlesource.com/181555 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 24112d68 2014-01-21T16:39:19 Only use 4-channel shaders for unpack buffers. D3D11 supports sampling other channel sizes of backing object and declaring them as 4-vectors in HLSL. This allows us to simplify the logic for fast unpack shaders significantly. Source: http://msdn.microsoft.com/en-us/library/windows/desktop/bb509700(v=vs.85).aspx (Default Values for Missing Components in a Texture) Change-Id: I7f645372f266f57bd94cdb1c795f1d30bf2a60a4 Reviewed-on: https://chromium-review.googlesource.com/181901 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 9c53f1e9 2014-01-08T13:41:47 Add more D3D11 buffer usages. Works around performance regressions when index and vertex buffer bind flags are used on the same buffer. Change-Id: I28bc0d3147c6bd70cec507f20e41d97ec4cc45a5 Reviewed-on: https://chromium-review.googlesource.com/181911 Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 91382e55 2014-01-07T16:16:30 Renderer11 tracks applied textures as SRVs. Since swizzled textures have multiple SRVs and the same serial, it was possible that the bound SRV would not be updated if the texture became swizzled while already bound. Change-Id: Id06e82f4002aa7f7661c7a69243692aa65a83b48 Reviewed-on: https://chromium-review.googlesource.com/181772 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 67938efc 2014-01-07T16:17:21 Added missing depth swizzle backing formats and fixed compressed texture bit calculation. Change-Id: I2390ace1fe5297f9fcad0c873c55dae564a09c43 Reviewed-on: https://chromium-review.googlesource.com/181773 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill d2a88381 2014-01-06T14:03:51 Fix improper deferencing of a zero-size vector. When doing a masked clear with only a depth-stencil buffer, we would look for the zero-th element of an empty vector. Change-Id: I17d61cf582c6e91fd46f8a8e13e35c6d32dfa109 Reviewed-on: https://chromium-review.googlesource.com/181554 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 80b5a55e 2014-01-03T10:57:11 Fix compressed formats breaking swizzle bits checks. We defautled to zero max bit depth, which breaks the swizzle format lookup. Change-Id: I4d1cd8bcfb79db3460950fa22630c259f90fa432 Reviewed-on: https://chromium-review.googlesource.com/181481 Reviewed-by: Jamie Madill <jmadill@google.com> Commit-Queue: Jamie Madill <jmadill@google.com> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 13a2f85b 2013-12-11T16:35:08 Implement max elements indices and vertices. ES3 has integer queries for the maximum recommended number of vertices and indices per draw call. These are roughly correlated to D3D's resource limits -- however, while ES3 has recommended limits D3D has hard limits. Change-Id: Ib653bc27e61607c78d0c5e70b0d97fea7af6464f Reviewed-on: https://chromium-review.googlesource.com/179670 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Jamie Madill cd65ae16 2013-12-17T15:20:14 Trigger lost device on an error in D3D9 Present. This fixes device remove handling on AMD systems, as well as notifying the app layer there may have been an internal problem during Present. BUG=313210 Change-Id: I843ffb3946dd9ef34fbd24b3a46a7b97e3c0fd16 Reviewed-on: https://chromium-review.googlesource.com/179140 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/180450 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 3b866b6c 2013-09-30T15:21:00 Clear11 will not clear channels that are not supposed to exist in the render target's format. Change-Id: I9c2bb927ec63d67d315893d44f199ceab4b5df82 Reviewed-on: https://chromium-review.googlesource.com/176856 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang c142e9da 2013-09-30T15:19:47 Renderer classes now set their blend states to mask out channels that do not exist in the render target. Change-Id: Ia49bf8de07bbdfa31275ec9835de28adc3717485 Reviewed-on: https://chromium-review.googlesource.com/176855 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang f8c2f5cb 2013-12-05T13:52:33 Fix indices not being offset to the bound vertex buffer when drawing indexed points in D3D9. bug=angle:535 Change-Id: I5b86874cddbd3b90fe141e94085f5a4afb9f3db3 Reviewed-on: https://chromium-review.googlesource.com/179101 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 34256ed8 2013-09-30T15:15:52 Image and RenderTarget classes now initialize their textures if required. Change-Id: I2cce6f4ffdc7e2a6c23c50d663c6316f9b125880 Reviewed-on: https://chromium-review.googlesource.com/176854 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 0c99b1b0 2013-09-30T15:07:43 Add functions to check if texture data initialization is required. Change-Id: I54c3b90780c304d6001b9e52278672981c96cb83 Reviewed-on: https://chromium-review.googlesource.com/176853 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 2916b30e 2013-11-28T13:41:10 Removed extra AddRef and Release calls on D3D11 objects. Change-Id: I5918c67735658912663c79e964b8edfb288784a3 Reviewed-on: https://chromium-review.googlesource.com/178450 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill fa3d9f30 2013-12-03T16:58:17 Fix swapchain resize errors when sizing to 0 width or height. BUG=angle:519 Change-Id: I3d3d0746b2b3027d04c91cc5fdcd301930e3b22a Reviewed-on: https://chromium-review.googlesource.com/178439 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 88f779dd 2013-12-03T10:57:56 Fix device removed handling for systems which do not immediately allow recreating a new device. On Intel systems there's a cool-down period when you must wait before recreating the device. BUG=313210 Change-Id: I22cdf41eecf0eae5058b59e1b0863173d604d606 Reviewed-on: https://chromium-review.googlesource.com/178437 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill a049fe1e 2013-12-02T13:14:57 Add NULL init for swizzle SRVs with eglBindTexImage textures. Change-Id: I8a1069013f37988632db07359d65f8215041978e Reviewed-on: https://chromium-review.googlesource.com/178431 Reviewed-by: Geoff Lang <geofflang@chromium.org> Tested-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Nicolas Capens <nicolascapens@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@chromium.org> Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Geoff Lang 42477a43 2013-09-17T17:07:02 Renderer11 now generates swizzles and invalidates the cached swizzles. Change-Id: If5c998a91195942297beeb26a0ec635ff6a466ea Reviewed-on: https://chromium-review.googlesource.com/177035 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang e2e0ce0c 2013-09-17T17:05:08 Context now detects if a texture needs to be swizzled and calls Renderer::generateSwizzles. Change-Id: I89f30e028b1d6ec384536cdbeedd91bb98359e8f Reviewed-on: https://chromium-review.googlesource.com/178440 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang 644bbf24 2013-09-17T17:02:43 Added a swizzle cache to TextureStorage11. Change-Id: Iebf297ef5b8560bb468428fc369eb3df8f43ec11 Reviewed-on: https://chromium-review.googlesource.com/177032 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 00f6bc32 2013-09-20T14:59:06 Add GetSwizzle*Format functions to formatutils11. Change-Id: Idcd4aa5fd18c1629168ba7cdd41e8fb3f6c3ead3 Reviewed-on: https://chromium-review.googlesource.com/177031 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Geoff Lang ed883f54 2013-09-10T17:20:54 Added a swizzleTexture method to Blit11. Change-Id: I0af836f761893c8928a84d138a6b2d07a3e04da6 Reviewed-on: https://chromium-review.googlesource.com/176989 Reviewed-by: Shannon Woods <shannonwoods@chromium.org> Commit-Queue: Shannon Woods <shannonwoods@chromium.org> Tested-by: Shannon Woods <shannonwoods@chromium.org>
Jamie Madill 3c9eeb97 2013-11-04T11:09:26 Disable optimizations for shaders with conditional discard in D3D9, and only use expanded short-circuiting conditionals for expressions with potential side-effects. Conservatively assume aggreate and selection operators have side effects for now. BUG= ANGLEBUG=486 R=geofflang@chromium.org, kbr@chromium.org, nicolas@transgaming.com, shannonwoods@chromium.org Review URL: https://codereview.appspot.com/14441075 Conflicts: src/common/version.h src/compiler/translator.vcxproj src/compiler/translator.vcxproj.filters src/compiler/translator/OutputHLSL.cpp src/libGLESv2/ProgramBinary.cpp src/libGLESv2/Shader.cpp src/libGLESv2/Shader.h Change-Id: Iaf9f10b5de7b33c927ef032f3c4fe9d5095f64dd
Jamie Madill 5a60b739 2013-11-26T09:49:23 Ensure stream source frequency for stream 0 is set to 1 in swapRect for D3D9. This prevents D3D errors which we could see when using the Debug runtime. BUG=321834 Change-Id: I1dd66d9d80def5e558fc13c218fde9c4047ab2b4
Jamie Madill b7935e51 2013-11-20T15:47:47 Proper handling of D3D9Ex device removed. BUG=313210 Change-Id: I85dae10bc2ec38a1e9c09f318b8f6b9196466d60
Shannon Woods 1293cf4b 2013-11-21T18:33:44 Merge "Renamed some Blit11 types and methods to imply they are for blitting (as opposed to swizzleing)." into es3proto
Geoff Lang 453aaba4 2013-11-20T11:02:23 Don't let mBufferSize fall out of sync with the actual buffer size. Pervents unnecessary buffer re-creations. Change-Id: Ie40300865dcd7830fe8eafbccfaa3edad46c7b52
Geoff Lang 26533604 2013-09-09T16:41:42 Renamed some Blit11 types and methods to imply they are for blitting (as opposed to swizzleing).
Geoff Lang 95f9f986 2013-10-21T17:09:19 Remove use of DXGI_FORMAT_R32G32B32_FLOAT as a backing format for GL_LUMINANCE32F_EXT. TRAC #24036 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang 89bf4bff 2013-10-31T10:32:46 Fixed a bug where the vertex data manager was not caching the current value attributes properly. ANGLEBUG=489 Review URL: https://codereview.appspot.com/18670043
Geoff Lang 1ec57f80 2013-10-16T11:43:23 Add support for GL_EXT_color_buffer_float. TRAC #23794 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Jamie Madill 6b7440ca 2013-10-24T17:49:47 Remove TextureStorage::GetActualLevelCount. TRAC #23978
Jamie Madill 4cfff5f3 2013-10-24T17:49:46 Modify texture storage classes to store a base and max level, instead of a range of levels. TRAC #23978 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill b16b8ed7 2013-10-24T17:49:45 Add helper functions for returning the dimensions of a level in a texture storage. TRAC #23978 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill 169d1118 2013-10-24T17:49:37 Rename Texture and Image methods which operate on storage objects to refer to storage instead of textures. TRAC #23961 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill 2db197cd 2013-10-24T17:49:35 Use a consistent naming scheme for the cube map face index variables in Texture.cpp. TRAC #23961 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang
Jamie Madill d4589c97 2013-10-24T17:49:34 Simplify passing the texture usage parameters through the texture classes. Avoid passing a raw GLenum when possible. TRAC #23961 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill e83d1a93 2013-10-24T17:49:33 Change Texture::convertToRenderTarget to ensureRenderTarget, which tries to convert a storage to a RT if it isn't already. TRAC #23961 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Geoff Lang 632192dd 2013-10-04T13:40:46 Added support for EXT_texture_rg in D3D9 and D3D11. TRAC #22423 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang 4133f5c2 2013-10-10T13:51:18 24bit depth formats need to flip the depth and stencil bits when loading. TRAC #23540 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Geoff Lang 88f9cbf2 2013-10-18T14:33:37 SwapChain11 now stores a SRV of it's depth stencil. TRAC #24025 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Jamie Madill ba597af9 2013-10-22T13:12:15 Re-enable hazard warnings for setting render targets that are currently bound as SRVs. We can manually unset applied textures in SetRenderTargets. This should fix the spurious warnings while still showing a warning on error cases. TRAC #24039 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Geoff Lang 005df41f 2013-10-16T14:12:50 Use GLenum instead of GLint to store internal format variables. TRAC #23785 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Jamie Madill 2a6f956d 2013-10-18T17:25:45 Move the PBO unpack shaders to the proper folder. These were not properly merged with the project changes. TRAC #24028 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang
Geoff Lang 036aa49b 2013-10-09T16:23:30 Disable warnings about size_t conversion and fix ambiguous template parameters in 64 bit builds. TRAC #23409 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods
Jamie Madill 53683053 2013-10-10T15:30:15 Support the "fast path" (GPU copies) for pixel unpack buffers in TexImage3D. TRAC #23846 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill a2d4e55d 2013-10-10T15:12:01 Add support for pixel unpack buffers to TexImage3D. TRAC #23846 Signed-off-by: Shannon Woods Signed-off-by: Geoff Lang
Jamie Madill 4461f097 2013-10-10T15:10:39 Add support for the "fast path" (GPU copy) pixel unpack buffers in TexImage2D. TRAC #23844 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill 171ca0ea 2013-10-10T15:10:31 Refactor direct buffer storage to only create two backing buffers, for constant buffers and all other bindings. This simplifies the logic used in retrieving the ID3D11Buffer. TRAC #23844 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill 851a4f66 2013-10-10T15:15:36 Add precompiled D3D11 shaders for pixel unpack buffers. TRAC #23844 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill c8c102b5 2013-10-10T15:10:24 Add a helper method to return the native format backing a GL texture type. TRAC #23844 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Jamie Madill 0e0510fd 2013-10-10T15:46:23 Place the method responsible for checking for fast pixel unpack buffer support into the Renderer. TRAC #23997 Signed-off-by: Geoff Lang Signed-off-by: Shannon Woods
Geoff Lang d47e0fcc 2013-08-29T11:40:43 Split the d3d9 and d3d11 backends into folders and updated the gyp file to use a python script to generate the file lists for the libGLESv2 and libEGL projects.
Geoff Lang 401a0bc5 2013-10-16T13:20:49 Fix D3D9 attributes being marked as requireing conversion when they did not. R=jmadill@chromium.org,shannonwoods@chromium.org Review URL: https://codereview.appspot.com/14737043
Jamie Madill 71cc91fc 2013-09-18T12:51:22 Remove an assert statement to do with uniforms and element indexes. This assert could trigger false positives on sampler types. We should eventually replace our uniform handling logic with something more consistent with D3D11's "everything is a constant buffer" model. TRAC #23749 Signed-off-by: Shannon Woods Signed-off-by: Nicolas Capens