Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | iris: tidy more warnings | Kenneth Graunke | 2019-02-21 | 1 | -2/+0 |
| | |||||
* | iris: Enable msaa_map transfer helpers | Kenneth Graunke | 2019-02-21 | 1 | -1/+1 |
| | | | | | This does the downsampling for us. It'll use BLORP anyway because it uses blit(), and that uses BLORP. | ||||
* | iris: Actually create/destroy HW contexts | Kenneth Graunke | 2019-02-21 | 1 | -0/+8 |
| | | | | | | | | The intention is that render and compute use their own contexts, and each is PIPELINE_SELECT'd to the right pipeline. But we hadn't actually made them, so we got the fd-default context. Thanks to Chris Wilson for catching this! | ||||
* | iris: Don't leak the compute batch | Kenneth Graunke | 2019-02-21 | 1 | -0/+1 |
| | |||||
* | iris: cross batch flushing | Kenneth Graunke | 2019-02-21 | 1 | -0/+10 |
| | |||||
* | iris: Cross-link iris_batches so they can potentially flush each other | Kenneth Graunke | 2019-02-21 | 4 | -4/+26 |
| | | | | | | This makes e.g. the render batch aware of the compute batch, so it can ask questions like "is this BO referenced by some other batch?" and do something about that. | ||||
* | iris: fix crash in sparse vertex array | Dave Airlie | 2019-02-21 | 1 | -1/+2 |
| | | | | this fixes crash in array-stride piglit. | ||||
* | iris: Use at least 1x1 size for null FB surface state. | Kenneth Graunke | 2019-02-21 | 1 | -1/+4 |
| | | | | | | Otherwise we get 0 - 1 = 0xffffffff and fail to pack SURFACE_STATE. Fixes some object namespace pollution gltexsubimage2d tests | ||||
* | iris: Drop B5G5R5X1 support | Kenneth Graunke | 2019-02-21 | 1 | -1/+0 |
| | | | | | This is oddly renderable but not supported for sampling, which is the opposite of other X formats. Just skip it and fall back to BGRA. | ||||
* | iris: Enable A8/A16_UNORM in an inefficient manner | Kenneth Graunke | 2019-02-21 | 1 | -6/+7 |
| | | | | | These are currently just use the 'A' hardware formats, rather than the faster 'R' formats. glBitmap handling needs these, it seems. :( | ||||
* | iris: Enable ARB_shader_stencil_export | Kenneth Graunke | 2019-02-21 | 1 | -0/+1 |
| | |||||
* | iris: Disable a PIPE_CONTROL workaround on Icelake | Kenneth Graunke | 2019-02-21 | 1 | -1/+1 |
| | |||||
* | iris: Flag constants dirty on program changes | Kenneth Graunke | 2019-02-21 | 1 | -7/+6 |
| | | | | | | | | | | | 3DSTATE_CONSTANT_* looks at prog_data->ubo_ranges. We were getting saved by iris_set_constant_buffers() usually happening when changing programs (as they usually change uniforms too), but with the clear shader that doesn't use uniforms, we weren't getting one and were leaving push constants enabled, screwing things up. Also clean up a bit of a mess left by the hacks - we were missing bindings in the VS/FS/CS case, among other issues... | ||||
* | iris: allow binding a null vertex buffer | Kenneth Graunke | 2019-02-21 | 1 | -3/+7 |
| | | | | PBO upload apparently does this... | ||||
* | iris: fix overhead regression from "don't stomp each other's dirty bits" | Kenneth Graunke | 2019-02-21 | 1 | -1/+1 |
| | | | | | The change from dirty = 0ull to dirty &= ~NOT_MY_BITS broke the "nothing to do? skip it!" optimization. thanks to Chris for noticing this! | ||||
* | iris: delete dead code | Kenneth Graunke | 2019-02-21 | 1 | -27/+0 |
| | |||||
* | iris: Fix refcounting of grid surface | Kenneth Graunke | 2019-02-21 | 1 | -1/+1 |
| | |||||
* | iris/compute: Zero out the last grid size on indirect dispatches | Jason Ekstrand | 2019-02-21 | 1 | -0/+5 |
| | |||||
* | iris/compute: Don't increment the grid size offset | Jason Ekstrand | 2019-02-21 | 1 | -2/+0 |
| | | | | | | It may be in the dynamic state buffer but the fact that we have a resource takes care of that. We don't need to add in the address of the dynamic state buffer again. | ||||
* | iris: SO_DECL_LIST fix | Kenneth Graunke | 2019-02-21 | 1 | -0/+8 |
| | |||||
* | iris: Fall back to 1x1x1 null surface if no framebuffer supplied | Kenneth Graunke | 2019-02-21 | 1 | -0/+4 |
| | | | | | | | If the state tracker never gave us the framebuffer dimensions via a set_framebuffer_state() call, just fall back to the unbound texture null surface, which is 1x1x1. Otherwise we'd use a NULL resource (no pun intended). | ||||
* | iris: Fix off by one in scissoring, empty scissors, default scissors | Kenneth Graunke | 2019-02-21 | 1 | -2/+24 |
| | |||||
* | iris: Move snapshots_landed to the front. | Kenneth Graunke | 2019-02-21 | 1 | -1/+1 |
| | | | | | Transform feedback overflow queries need to write additional data, and it would be nice to have this field remain at a consistent offset. | ||||
* | iris: Clamp UBO and SSBO access to the actual BO size, for safety | Kenneth Graunke | 2019-02-21 | 1 | -2/+5 |
| | |||||
* | iris: Fix texture buffer / image buffer sizes. | Kenneth Graunke | 2019-02-21 | 3 | -26/+46 |
| | | | | Also fix image buffers with offsets. | ||||
* | iris: fix SF_CLIP_VIEWPORT array indexing with multiple VPs | Kenneth Graunke | 2019-02-21 | 1 | -1/+2 |
| | | | | fixes bunches of viewport stuffs | ||||
* | iris: flag CC_VIEWPORT when changing num viewports | Kenneth Graunke | 2019-02-21 | 1 | -0/+1 |
| | | | | this also has a loop over num_viewports | ||||
* | iris: fix UBOs with bindings that have an offset | Kenneth Graunke | 2019-02-21 | 1 | -0/+1 |
| | |||||
* | iris: try and avoid pointless compute submissions | Kenneth Graunke | 2019-02-21 | 1 | -1/+3 |
| | | | | | if apps don't use compute shaders, we don't even want to kick off the compute initialization batch | ||||
* | iris: fix SBA flushing by refactoring code | Kenneth Graunke | 2019-02-21 | 1 | -50/+25 |
| | |||||
* | iris: do PIPELINE_SELECT for render engine, add flushes, GLK hacks | Kenneth Graunke | 2019-02-21 | 1 | -6/+80 |
| | |||||
* | iris: hack to avoid memorybarriers out the wazoo | Kenneth Graunke | 2019-02-21 | 1 | -3/+7 |
| | | | | | | | | we don't want to emit piles of pipe controls to a compute batch if it isn't necessary... prevents double-batch-wraps in cs-op-selection-bool-bvec4-bvec4 (but it's still kinda a big ol' hack...) | ||||
* | iris: don't let render/compute contexts stomp each other's dirty bits | Kenneth Graunke | 2019-02-21 | 2 | -3/+10 |
| | | | | only clear what you process | ||||
* | iris: better dirty checking | Kenneth Graunke | 2019-02-21 | 2 | -52/+67 |
| | |||||
* | iris: rewrite grid surface handling | Kenneth Graunke | 2019-02-21 | 3 | -57/+73 |
| | | | | | | | now we only upload a new grid when it's actually changed, which saves us from having to emit a new binding table every time it changes. this also moves a bunch of non-gen-specific stuff out of iris_state.c | ||||
* | iris: XXX for compute state tracking :/ | Kenneth Graunke | 2019-02-21 | 1 | -0/+1 |
| | | | | | Maybe we should just move dirty to batch, it would help with the reset stuff too | ||||
* | iris: fix whitespace | Kenneth Graunke | 2019-02-21 | 1 | -3/+3 |
| | |||||
* | iris: bail if SLM is needed | Kenneth Graunke | 2019-02-21 | 1 | -0/+3 |
| | |||||
* | iris: leave XXX about unnecessary binding table uploads | Kenneth Graunke | 2019-02-21 | 1 | -0/+2 |
| | |||||
* | iris: drop unnecessary #ifdefs | Kenneth Graunke | 2019-02-21 | 1 | -2/+0 |
| | |||||
* | iris: drop XXX that Jordan handled | Kenneth Graunke | 2019-02-21 | 1 | -2/+0 |
| | |||||
* | iris/compute: Support indirect compute dispatch | Jordan Justen | 2019-02-21 | 1 | -0/+21 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/compute: Push subgroup-id | Jordan Justen | 2019-02-21 | 3 | -6/+37 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/compute: Flush compute batch on memory-barriers | Jordan Justen | 2019-02-21 | 1 | -0/+1 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/compute: Provide binding table entry for gl_NumWorkGroups | Jordan Justen | 2019-02-21 | 1 | -6/+53 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/compute: Wait on compute batch when mapping | Jordan Justen | 2019-02-21 | 1 | -0/+5 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/program: Don't try to push ubo ranges for compute | Jordan Justen | 2019-02-21 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | | | | We only can push constants for compute shaders from one range. Gallium glsl-to-nir (src/mesa/state_tracker/st_glsl_to_nir.cpp) lowers all uniform accesses to a ubo. Unfortunately we also load the subgroup-id as a uniform in the compiler. Since we use the 1 push range for this subgroup-id, we then lose the ability to actually push the ubo with all the normal user uniform values. In other words, there is lots of room for performance improvement, but at least retrieving the uniforms as pull-constants is functional for now. Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/compute: Get group counts from grid->grid | Jordan Justen | 2019-02-21 | 1 | -3/+3 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/compute: Flush compute batches | Jordan Justen | 2019-02-21 | 1 | -0/+1 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> | ||||
* | iris/compute: Add MEDIA_STATE_FLUSH following WALKER | Jordan Justen | 2019-02-21 | 1 | -0/+2 |
| | | | | Signed-off-by: Jordan Justen <[email protected]> |