Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | iris: Skip msaa16 on gen < 9. | Rafael Antognolli | 2019-02-21 | 1 | -15/+33 |
| | | | | Also needed to add gen information to KEY_INIT. | ||||
* | iris: Set program key fields for MCS | Kenneth Graunke | 2019-02-21 | 1 | -3/+6 |
| | |||||
* | iris: don't use hiz for MSAA buffers | Kenneth Graunke | 2019-02-21 | 1 | -9/+12 |
| | |||||
* | iris: some initial HiZ bits | Kenneth Graunke | 2019-02-21 | 7 | -17/+146 |
| | |||||
* | iris: disable aux for external things | Kenneth Graunke | 2019-02-21 | 1 | -1/+14 |
| | |||||
* | iris: Resolves for compute | Kenneth Graunke | 2019-02-21 | 1 | -2/+8 |
| | |||||
* | iris: consider framebuffer parameter for aux usages | Kenneth Graunke | 2019-02-21 | 3 | -9/+13 |
| | |||||
* | iris: Make blit code use actual aux usages | Kenneth Graunke | 2019-02-21 | 1 | -2/+2 |
| | |||||
* | iris: store modifier info in res | Kenneth Graunke | 2019-02-21 | 2 | -9/+14 |
| | |||||
* | iris: pin the buffers | Kenneth Graunke | 2019-02-21 | 1 | -2/+12 |
| | |||||
* | iris: resolve before transfer maps | Kenneth Graunke | 2019-02-21 | 2 | -3/+12 |
| | |||||
* | iris: be sure to skip buffers in resolve code | Kenneth Graunke | 2019-02-21 | 1 | -0/+6 |
| | | | | Buffers don't have ISL surfaces, and this can get us into trouble. | ||||
* | iris: try to fix copyimage vs copybuffers | Kenneth Graunke | 2019-02-21 | 1 | -15/+18 |
| | |||||
* | iris: actually use the multiple surf states for aux modes | Kenneth Graunke | 2019-02-21 | 1 | -10/+30 |
| | |||||
* | iris: add some draw resolve hooks | Kenneth Graunke | 2019-02-21 | 6 | -47/+236 |
| | |||||
* | iris: blorp using resolve hooks | Kenneth Graunke | 2019-02-21 | 2 | -6/+70 |
| | |||||
* | iris: Initial import of resolve code | Kenneth Graunke | 2019-02-21 | 5 | -8/+1050 |
| | |||||
* | iris: create aux surface if needed | Kenneth Graunke | 2019-02-21 | 2 | -4/+159 |
| | |||||
* | iris: Fill out SURFACE_STATE entries for each possible aux usage | Kenneth Graunke | 2019-02-21 | 1 | -14/+59 |
| | |||||
* | iris: Fill out res->aux.possible_usages | Kenneth Graunke | 2019-02-21 | 1 | -5/+66 |
| | |||||
* | iris: Add iris_resource fields for aux surfaces | Kenneth Graunke | 2019-02-21 | 2 | -0/+54 |
| | | | | But without fast clears or HiZ per-level tracking just yet. | ||||
* | iris: Emit default L3 config for the render pipeline | Jordan Justen | 2019-02-21 | 1 | -23/+38 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris: Always emit at least one BLEND_STATE | Kenneth Graunke | 2019-02-21 | 1 | -1/+8 |
| | |||||
* | iris: Add missing depth cache flushes | Kenneth Graunke | 2019-02-21 | 1 | -0/+5 |
| | |||||
* | iris: Simplify iris_get_depth_stencil_resources | Kenneth Graunke | 2019-02-21 | 1 | -5/+1 |
| | | | | | | | | We can safely assume that the given resource is depth, depth/stencil, or stencil already. The stencil-only case is easily detectable with a single format check, and all other cases are handled identically. This saves some CPU overhead. | ||||
* | iris: Make an IRIS_MAX_MIPLEVELS define | Kenneth Graunke | 2019-02-21 | 2 | -1/+3 |
| | |||||
* | iris: Store internal_format when getting resource from handle. | Rafael Antognolli | 2019-02-21 | 1 | -0/+1 |
| | |||||
* | iris: Move create and bind driver hooks to the end of iris_program.c | Kenneth Graunke | 2019-02-21 | 1 | -330/+312 |
| | | | | | | | | This just moves the code for dealing with pipe_shader_state / pipe_compute_state / iris_uncompiled_shader to the end of the file. Now that those do precompiles, they want to call the actual compile functions. Putting them at the end eliminates the need for a bunch of prototypes. | ||||
* | iris: implement clearing render target and depth stencil | Timur Kristóf | 2019-02-21 | 1 | -107/+184 |
| | | | | v2 (Kenneth Graunke): split color/depthstencil cases, fix iris_clear | ||||
* | iris: Drop XXX about checking for swizzling | Kenneth Graunke | 2019-02-21 | 1 | -2/+1 |
| | | | | | | | | | | | | | Caio noted that this is not necessary on Gen8+: "Before Gen8, there was a historical configuration control field to swizzle address bit[6] for in X/Y tiling modes. This was set in three different places: TILECTL[1:0], ARB_MODE[5:4], and DISP_ARB_CTL[14:13]. For Gen8 and subsequent generations, the swizzle fields are all reserved, and the CPU's memory controller performs all address swizzling modifications." Since we don't support earlier hardware, we can skip it entirely. | ||||
* | iris: Set HasWriteableRT correctly | Kenneth Graunke | 2019-02-21 | 2 | -1/+45 |
| | | | | A bit of irritating state cross dependency here, but nothing too hard | ||||
* | iris: Set 3DSTATE_WM::ForceThreadDispatchEnable | Kenneth Graunke | 2019-02-21 | 1 | -0/+4 |
| | | | | | | | | The Vulkan driver only sets this if color writes are disabled, which is more conservative - but would require us to inspect blend state. (If color writes are enabled, we don't need to force anything, because the internal signal is already correct. But it shouldn't hurt to do so.) | ||||
* | iris: Drop XXX about alpha testing | Kenneth Graunke | 2019-02-21 | 1 | -3/+1 |
| | | | | | | I was misreading i965 - the 3DSTATE_WM::PixelShaderKillsPixel bit from Gen < 8 needed all of this, but the 3DSTATE_PS_EXTRA bit only needs prog_data->uses_kill. | ||||
* | iris: improve PIPE_CAP_VIDEO_MEMORY bogus value | Andre Heider | 2019-02-21 | 1 | -1/+1 |
| | | | | | | -1 is a little too bogus for most games ;) Signed-off-by: Andre Heider <[email protected]> | ||||
* | iris: fix build with gallium nine | Andre Heider | 2019-02-21 | 2 | -3/+4 |
| | | | | Signed-off-by: Andre Heider <[email protected]> | ||||
* | iris: Stop chopping off the first nine characters of the renderer string | Kenneth Graunke | 2019-02-21 | 1 | -1/+1 |
| | |||||
* | iris: rework num textures to util_lastbit | Kenneth Graunke | 2019-02-21 | 2 | -6/+10 |
| | |||||
* | iris: Add PIPE_CAP_MAX_VARYINGS | Kenneth Graunke | 2019-02-21 | 1 | -0/+1 |
| | |||||
* | iris: Make a iris_batch_reference_signal_syncpt helper function. | Kenneth Graunke | 2019-02-21 | 3 | -7/+22 |
| | | | | Suggested by Chris Wilson. More obvious what's going on. | ||||
* | iris: Use READ_ONCE and WRITE_ONCE for snapshots_landed | Kenneth Graunke | 2019-02-21 | 3 | -7/+8 |
| | | | | | | Suggested by Chris Wilson, if only to make it obvious to the human readers that these are volatile reads. It may also be necessary for the compiler in a few cases. | ||||
* | iris: Fix accidental busy-looping in query waits | Kenneth Graunke | 2019-02-21 | 1 | -1/+1 |
| | | | | | | | | | | | When switching from bo_wait to sync-points, I missed that we turned an if (not landed) bo_wait into a while (not landed) check_syncpt(), which has a timeout of 0. This meant, rather than sleeping until the batch is complete, we'd busy-loop, continually asking the kernel "is the batch done yet???". This is not what we want at all - if we wanted a busy loop, we'd just loop on !snapshots_landed. We want to sleep. Add an effectively infinite timeout so that we sleep. | ||||
* | iris: Add a timeout_nsec parameter, rename check_syncpt to wait_syncpt | Kenneth Graunke | 2019-02-21 | 3 | -6/+9 |
| | | | | I want to be able to wait with a non-zero timeout from elsewhere. | ||||
* | iris: Don't allocate a BO per query object | Sagar Ghuge | 2019-02-21 | 5 | -45/+97 |
| | | | | | | | | | | | Instead of allocating 4K BO per query object, we can create a large blob of memory and split it into pieces as required. Having one BO for multiple query objects, we don't want to wait on all of them, instead when we write last snapshot, we create a sync point, and check syncpoints while waiting on particular object. Signed-off-by: Sagar Ghuge <[email protected]> | ||||
* | iris: Implement ALT mode for ARB_{vertex,fragment}_shader | Kenneth Graunke | 2019-02-21 | 1 | -2/+4 |
| | | | | Fixes gl-1.0-spot-light | ||||
* | iris: Fix bug in bound vertex buffer tracking | Kenneth Graunke | 2019-02-21 | 1 | -3/+3 |
| | | | | res might be NULL, at which point this is an unbind. | ||||
* | iris: minor tidying | Kenneth Graunke | 2019-02-21 | 2 | -40/+15 |
| | |||||
* | iris: Unreference some more things on state module teardown | Kenneth Graunke | 2019-02-21 | 1 | -2/+21 |
| | |||||
* | iris: Drop dead state_size hash table | Kenneth Graunke | 2019-02-21 | 2 | -24/+2 |
| | | | | | | | | I inherited this from i965. It would be nice to track the state size so INTEL_DEBUG=color,bat decoding can print the right number of e.g. binding table entries or blend states, but...without a single point of entry for state, it's a little tricky to get right. Punt for now, and drop the dead code in the meantime. | ||||
* | iris: Drop comment about ISP_DIS | Kenneth Graunke | 2019-02-21 | 1 | -2/+0 |
| | | | | | | | i965 re-emits 3DSTATE_CONSTANT_* on every batch, so there's no point in restoring the constants from the context. Iris actually re-pins the constant buffers properly across the batch, and avoids re-emitting the constant packets unless it's necessary. So, we don't want ISP_DIS. | ||||
* | iris: Enable PIPE_CAP_COMPACT_ARRAYS | Kenneth Graunke | 2019-02-21 | 1 | -0/+1 |
| |