summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* iris: tidy more warningsKenneth Graunke2019-02-211-2/+0
|
* iris: Enable msaa_map transfer helpersKenneth Graunke2019-02-211-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 contextsKenneth Graunke2019-02-211-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 batchKenneth Graunke2019-02-211-0/+1
|
* iris: cross batch flushingKenneth Graunke2019-02-211-0/+10
|
* iris: Cross-link iris_batches so they can potentially flush each otherKenneth Graunke2019-02-214-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 arrayDave Airlie2019-02-211-1/+2
| | | | this fixes crash in array-stride piglit.
* iris: Use at least 1x1 size for null FB surface state.Kenneth Graunke2019-02-211-1/+4
| | | | | | Otherwise we get 0 - 1 = 0xffffffff and fail to pack SURFACE_STATE. Fixes some object namespace pollution gltexsubimage2d tests
* iris: Drop B5G5R5X1 supportKenneth Graunke2019-02-211-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 mannerKenneth Graunke2019-02-211-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_exportKenneth Graunke2019-02-211-0/+1
|
* iris: Disable a PIPE_CONTROL workaround on IcelakeKenneth Graunke2019-02-211-1/+1
|
* iris: Flag constants dirty on program changesKenneth Graunke2019-02-211-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 bufferKenneth Graunke2019-02-211-3/+7
| | | | PBO upload apparently does this...
* iris: fix overhead regression from "don't stomp each other's dirty bits"Kenneth Graunke2019-02-211-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 codeKenneth Graunke2019-02-211-27/+0
|
* iris: Fix refcounting of grid surfaceKenneth Graunke2019-02-211-1/+1
|
* iris/compute: Zero out the last grid size on indirect dispatchesJason Ekstrand2019-02-211-0/+5
|
* iris/compute: Don't increment the grid size offsetJason Ekstrand2019-02-211-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 fixKenneth Graunke2019-02-211-0/+8
|
* iris: Fall back to 1x1x1 null surface if no framebuffer suppliedKenneth Graunke2019-02-211-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 scissorsKenneth Graunke2019-02-211-2/+24
|
* iris: Move snapshots_landed to the front.Kenneth Graunke2019-02-211-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 safetyKenneth Graunke2019-02-211-2/+5
|
* iris: Fix texture buffer / image buffer sizes.Kenneth Graunke2019-02-213-26/+46
| | | | Also fix image buffers with offsets.
* iris: fix SF_CLIP_VIEWPORT array indexing with multiple VPsKenneth Graunke2019-02-211-1/+2
| | | | fixes bunches of viewport stuffs
* iris: flag CC_VIEWPORT when changing num viewportsKenneth Graunke2019-02-211-0/+1
| | | | this also has a loop over num_viewports
* iris: fix UBOs with bindings that have an offsetKenneth Graunke2019-02-211-0/+1
|
* iris: try and avoid pointless compute submissionsKenneth Graunke2019-02-211-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 codeKenneth Graunke2019-02-211-50/+25
|
* iris: do PIPELINE_SELECT for render engine, add flushes, GLK hacksKenneth Graunke2019-02-211-6/+80
|
* iris: hack to avoid memorybarriers out the wazooKenneth Graunke2019-02-211-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 bitsKenneth Graunke2019-02-212-3/+10
| | | | only clear what you process
* iris: better dirty checkingKenneth Graunke2019-02-212-52/+67
|
* iris: rewrite grid surface handlingKenneth Graunke2019-02-213-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 Graunke2019-02-211-0/+1
| | | | | Maybe we should just move dirty to batch, it would help with the reset stuff too
* iris: fix whitespaceKenneth Graunke2019-02-211-3/+3
|
* iris: bail if SLM is neededKenneth Graunke2019-02-211-0/+3
|
* iris: leave XXX about unnecessary binding table uploadsKenneth Graunke2019-02-211-0/+2
|
* iris: drop unnecessary #ifdefsKenneth Graunke2019-02-211-2/+0
|
* iris: drop XXX that Jordan handledKenneth Graunke2019-02-211-2/+0
|
* iris/compute: Support indirect compute dispatchJordan Justen2019-02-211-0/+21
| | | | Signed-off-by: Jordan Justen <[email protected]>
* iris/compute: Push subgroup-idJordan Justen2019-02-213-6/+37
| | | | Signed-off-by: Jordan Justen <[email protected]>
* iris/compute: Flush compute batch on memory-barriersJordan Justen2019-02-211-0/+1
| | | | Signed-off-by: Jordan Justen <[email protected]>
* iris/compute: Provide binding table entry for gl_NumWorkGroupsJordan Justen2019-02-211-6/+53
| | | | Signed-off-by: Jordan Justen <[email protected]>
* iris/compute: Wait on compute batch when mappingJordan Justen2019-02-211-0/+5
| | | | Signed-off-by: Jordan Justen <[email protected]>
* iris/program: Don't try to push ubo ranges for computeJordan Justen2019-02-211-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->gridJordan Justen2019-02-211-3/+3
| | | | Signed-off-by: Jordan Justen <[email protected]>
* iris/compute: Flush compute batchesJordan Justen2019-02-211-0/+1
| | | | Signed-off-by: Jordan Justen <[email protected]>
* iris/compute: Add MEDIA_STATE_FLUSH following WALKERJordan Justen2019-02-211-0/+2
| | | | Signed-off-by: Jordan Justen <[email protected]>