Chris Wilson [Mon, 30 Jul 2018 23:52:34 +0000 (00:52 +0100)]
iris: Wrap userptr for creating bo
Kenneth Graunke [Tue, 31 Jul 2018 22:34:44 +0000 (15:34 -0700)]
iris: sync bugfixes from brw_bufmgr
I wrote softpin support here first, then debugged and landed it in brw;
some of those fixes need to get brought back.
Kenneth Graunke [Tue, 31 Jul 2018 06:49:34 +0000 (23:49 -0700)]
iris: comment everything
1. Write the code
2. Add comments
3. PROFIT (or just avoid cost of explaining or relearning things...)
Kenneth Graunke [Tue, 31 Jul 2018 05:59:52 +0000 (22:59 -0700)]
iris: add minor comments
Dave Airlie [Tue, 31 Jul 2018 00:33:35 +0000 (10:33 +1000)]
iris: fix some hangs around null framebuffers
This fixes some cases in fbo-none* and framebuffer_no_attachments.
I'm not sure this is correct otherwise, the tests don't all pass yet
No idea if this is in any way the correct answer
Chris Wilson [Sat, 28 Jul 2018 20:10:17 +0000 (21:10 +0100)]
iris: Set resource modifier on handle
Required for gdm_bo_create_with_modifiers
Kenneth Graunke [Sat, 28 Jul 2018 03:57:55 +0000 (20:57 -0700)]
iris: we don't support textureGatherOffsets, need it lowered
Kenneth Graunke [Sat, 28 Jul 2018 03:25:21 +0000 (20:25 -0700)]
iris: cube arrays are cubes too
Kenneth Graunke [Fri, 27 Jul 2018 23:02:09 +0000 (16:02 -0700)]
iris: fix sample mask
0xffffffff does not mean 1, it means enable as many as there actually
are. we don't get set_sample_mask() calls until some masking is
actually applied...i.e. it doesn't get updated based on # of samples
in the FBO changing.
Kenneth Graunke [Fri, 27 Jul 2018 05:32:08 +0000 (22:32 -0700)]
iris: drop pipe_shader_state
looking at the freedreno code, this is totally unnecessary! we can just
store the NIR and be happy, and not have any vestiges of TGSI.
plus we can reuse this structure for compute shaders, without needing a
pipe_compute_state base.
Kenneth Graunke [Thu, 26 Jul 2018 08:11:11 +0000 (01:11 -0700)]
iris: fix GS output component limit
this is total, so should be 1024, not 128
Kenneth Graunke [Thu, 26 Jul 2018 08:06:27 +0000 (01:06 -0700)]
iris: Avoid croaking when trying to create FBO surfaces with bad formats
create_surface happens before st_validate_attachment, which actually
does the "hey, this is a render target now, is that OK?" check
Fixes asserts in ./bin/arb_texture_view-rendering-formats, allowing the
rest of the tests to run.
Kenneth Graunke [Thu, 26 Jul 2018 06:33:16 +0000 (23:33 -0700)]
iris: enable texture gather
Kenneth Graunke [Wed, 25 Jul 2018 22:09:50 +0000 (15:09 -0700)]
iris: BIG OL' HACK for UBO updates
We need to re-push data when UBO changes. This will need to be replaced
with a usage history based flushing system later.
Kenneth Graunke [Wed, 25 Jul 2018 21:39:02 +0000 (14:39 -0700)]
iris: update a todo comment
Kenneth Graunke [Wed, 25 Jul 2018 05:14:37 +0000 (22:14 -0700)]
iris: Don't reserve new binding table section unless things are dirty
Kenneth Graunke [Wed, 25 Jul 2018 04:15:13 +0000 (21:15 -0700)]
iris: implement texture/memory barriers
Kenneth Graunke [Wed, 25 Jul 2018 04:03:52 +0000 (21:03 -0700)]
iris: drop unused bo parameter
Kenneth Graunke [Wed, 25 Jul 2018 03:57:10 +0000 (20:57 -0700)]
iris: update bindings when changing programs
the binding table layout depends on program info.
not known to fix anything yet.
Kenneth Graunke [Wed, 25 Jul 2018 03:57:02 +0000 (20:57 -0700)]
iris: fix for disabling ssbos
Kenneth Graunke [Wed, 25 Jul 2018 00:44:09 +0000 (17:44 -0700)]
iris: fix SSBO indexing
st/nir offsets SSBO indexes by MaxABOs. This is not what we want,
as it bloats the binding tables. We'll need to adjust it to use
info->num_abos as the offset and buffer base instead. For now,
just use the inefficient format to get us rolling. We can add a
PIPE_CAP later.
Kenneth Graunke [Wed, 25 Jul 2018 00:03:48 +0000 (17:03 -0700)]
iris: enable SSBOs
Kenneth Graunke [Wed, 25 Jul 2018 00:02:25 +0000 (17:02 -0700)]
iris: fix TBO alignment to match 965
Kenneth Graunke [Tue, 24 Jul 2018 23:20:02 +0000 (16:20 -0700)]
iris: unbind compiled shaders if none are present
avoids the case where you have a stale compiled shader bound, but no
uncompiled shader bound, which is not just boats, but an entire marina
Kenneth Graunke [Tue, 24 Jul 2018 23:11:37 +0000 (16:11 -0700)]
iris: shorten loop
num_ubos doesn't include Tim's magic UBO for regular uniforms, so +1
Kenneth Graunke [Tue, 24 Jul 2018 23:03:32 +0000 (16:03 -0700)]
iris: emit binding table for atomic counters and SSBOs
Kenneth Graunke [Tue, 24 Jul 2018 22:54:00 +0000 (15:54 -0700)]
iris: implement set_shader_buffers
for SSBOs/ABOs. We just stream out SURFACE_STATE for now...since it's
a set_* API...and the buffer offset may change...not sure where else
we'd do it.
Kenneth Graunke [Tue, 24 Jul 2018 22:04:39 +0000 (15:04 -0700)]
iris: export get_shader_info
Kenneth Graunke [Tue, 24 Jul 2018 21:52:50 +0000 (14:52 -0700)]
iris: fix msaa flipping filters
Kenneth Graunke [Tue, 24 Jul 2018 21:49:13 +0000 (14:49 -0700)]
iris: expose more things that we already support
Kenneth Graunke [Tue, 24 Jul 2018 21:31:07 +0000 (14:31 -0700)]
iris: fix blorp filters
we have to switch to blorp enums after the rebase, but also we were
probably doing it wrong for MSAA before this.
Kenneth Graunke [Tue, 24 Jul 2018 17:59:10 +0000 (10:59 -0700)]
iris: hack around samples confusion
Kenneth Graunke [Mon, 23 Jul 2018 22:29:00 +0000 (15:29 -0700)]
iris: point sprite enables
Kenneth Graunke [Sun, 22 Jul 2018 03:47:08 +0000 (20:47 -0700)]
iris: reemit blend state for alpha test function changes
fixes bin/fbo-alphatest-formats GL_EXT_texture_snorm
Kenneth Graunke [Sun, 22 Jul 2018 03:12:15 +0000 (20:12 -0700)]
iris: fix Z24
This was backwards.
thanks to Jason Ekstrand for realizing that I was seeing the wrong bits.
Kenneth Graunke [Fri, 20 Jul 2018 08:18:57 +0000 (01:18 -0700)]
iris: fix EmitNoIndirect
we were using pipe stages, which are ordered dumbly for historical
reasons. we want gl_shader_stage here. this got us the wrong options
Kenneth Graunke [Fri, 20 Jul 2018 07:47:40 +0000 (00:47 -0700)]
iris: assert about passthrough shaders to make this easier to detect
otherwise it just silently fails and looks like some obscure problem
Kenneth Graunke [Thu, 19 Jul 2018 04:08:32 +0000 (21:08 -0700)]
iris: fill out MAX_PATCH_VERTICES
Kenneth Graunke [Wed, 18 Jul 2018 23:27:07 +0000 (16:27 -0700)]
iris: fix SGVS when there are no valid vertex elements
tessellation nop.shader_test now passes
Kenneth Graunke [Wed, 18 Jul 2018 16:23:24 +0000 (09:23 -0700)]
iris: vertex ID, instance ID
Kenneth Graunke [Wed, 18 Jul 2018 16:02:35 +0000 (09:02 -0700)]
iris: don't emit SO_BUFFERS and SO_DECL_LIST unless streamout is enabled
Otherwise on the first draw, if XFB isn't enabled, we get a pile of
MI_NOOPS where SO_BUFFERS should be
Kenneth Graunke [Tue, 17 Jul 2018 21:21:42 +0000 (14:21 -0700)]
iris: compile a TCS...don't bother with passthrough yet
Kenneth Graunke [Tue, 17 Jul 2018 21:01:58 +0000 (14:01 -0700)]
iris: TES program key inputs
Kenneth Graunke [Tue, 17 Jul 2018 15:59:25 +0000 (08:59 -0700)]
iris: fix texture buffer stride
Kenneth Graunke [Tue, 17 Jul 2018 07:17:55 +0000 (00:17 -0700)]
iris: fix sampler views of TBOs
we can't read levels/layers, they're invalid for PIPE_BUFFER
Kenneth Graunke [Mon, 16 Jul 2018 23:45:22 +0000 (16:45 -0700)]
iris: fix crash
Kenneth Graunke [Mon, 16 Jul 2018 23:41:23 +0000 (16:41 -0700)]
iris: record FS NOS
Kenneth Graunke [Mon, 16 Jul 2018 23:21:22 +0000 (16:21 -0700)]
iris: NOS mechanics
Kenneth Graunke [Mon, 16 Jul 2018 23:25:02 +0000 (16:25 -0700)]
iris: bind state helper function
Kenneth Graunke [Mon, 16 Jul 2018 23:21:41 +0000 (16:21 -0700)]
iris: s/hwcso/state/g
Kenneth Graunke [Mon, 16 Jul 2018 22:36:34 +0000 (15:36 -0700)]
iris: bits of multisample program key
Kenneth Graunke [Sun, 15 Jul 2018 23:20:16 +0000 (16:20 -0700)]
iris: save query type
Kenneth Graunke [Sun, 15 Jul 2018 05:15:39 +0000 (22:15 -0700)]
iris: draw indirect support?
Kenneth Graunke [Sat, 14 Jul 2018 08:29:33 +0000 (01:29 -0700)]
iris: fix CC_VIEWPORT
I was confusing depth bounds test with depth clamping
Kenneth Graunke [Thu, 12 Jul 2018 21:44:55 +0000 (14:44 -0700)]
iris: multislice transfer maps
Kenneth Graunke [Thu, 12 Jul 2018 17:51:14 +0000 (10:51 -0700)]
iris: disable 6x MSAA support
Kenneth Graunke [Thu, 12 Jul 2018 17:42:49 +0000 (10:42 -0700)]
iris: fix sample mask for MSAA-off
Kenneth Graunke [Thu, 12 Jul 2018 00:05:10 +0000 (17:05 -0700)]
iris: actually pin the buffers
Kenneth Graunke [Wed, 11 Jul 2018 23:26:06 +0000 (16:26 -0700)]
iris: fix SO_DECL_LIST
Kenneth Graunke [Wed, 11 Jul 2018 20:40:33 +0000 (13:40 -0700)]
iris: bother setting program_string_id...
not sure how useful this really is...
./bin/ext_transform_feedback-tessellation triangles flat_first
is hitting a case where we rebind the same VS program, but with
different streamout info...which isn't in the key...but is in the
cache...so we don't rebuild it...
Kenneth Graunke [Wed, 11 Jul 2018 20:22:02 +0000 (13:22 -0700)]
iris: set even if no outputs
Kenneth Graunke [Wed, 11 Jul 2018 19:45:19 +0000 (12:45 -0700)]
iris: streamout
Kenneth Graunke [Fri, 29 Jun 2018 19:58:31 +0000 (12:58 -0700)]
iris: SO buffers
Kenneth Graunke [Fri, 29 Jun 2018 19:58:31 +0000 (12:58 -0700)]
iris: Implement 3DSTATE_SO_DECL_LIST
Kenneth Graunke [Mon, 9 Jul 2018 22:15:52 +0000 (15:15 -0700)]
iris: rearrange iris_resource.h
Kenneth Graunke [Fri, 6 Jul 2018 18:29:51 +0000 (11:29 -0700)]
iris: slab allocate transfers
apparently we need this for u_threaded_context
Kenneth Graunke [Thu, 5 Jul 2018 09:53:54 +0000 (02:53 -0700)]
iris: don't crash on shader perf logs
Kenneth Graunke [Thu, 5 Jul 2018 09:48:23 +0000 (02:48 -0700)]
iris: fix depth bounds clamp enables
fixes depthrange-clear among others
Kenneth Graunke [Thu, 5 Jul 2018 09:41:52 +0000 (02:41 -0700)]
iris: fix clip flagging on fb changes
Kenneth Graunke [Wed, 4 Jul 2018 23:11:01 +0000 (16:11 -0700)]
iris: comment out l/a/i/la
in hopes of r/rg fallbacks
Kenneth Graunke [Wed, 4 Jul 2018 23:07:28 +0000 (16:07 -0700)]
iris: actually handle array layers in blits
Kenneth Graunke [Wed, 4 Jul 2018 22:37:34 +0000 (15:37 -0700)]
iris: keep DISCARD_RANGE
this isn't really an iris_bo_map flag, but the various resource mappers
want to check for it to avoid making temp copies.
Kenneth Graunke [Wed, 4 Jul 2018 22:34:24 +0000 (15:34 -0700)]
iris: actually set cube bit properly
Kenneth Graunke [Wed, 4 Jul 2018 06:44:40 +0000 (23:44 -0700)]
iris: rename map->stride
Kenneth Graunke [Tue, 3 Jul 2018 20:23:47 +0000 (13:23 -0700)]
iris: fix zoffset asserts with 2DArray/Cube
Kenneth Graunke [Tue, 3 Jul 2018 06:16:20 +0000 (23:16 -0700)]
iris: SBE change stash
not used yet, but want to flag it so I don't forget
Kenneth Graunke [Mon, 2 Jul 2018 05:13:07 +0000 (22:13 -0700)]
iris: just malloc one iris_genx_state instead of a bunch of oddball pieces
Things that are gen-specific can go in iris_genx_state. Things that are
gen-agnostic can go directly in ice->state.
Kenneth Graunke [Mon, 2 Jul 2018 05:03:20 +0000 (22:03 -0700)]
iris: dead pointer
Kenneth Graunke [Thu, 28 Jun 2018 09:25:25 +0000 (02:25 -0700)]
iris: implement border color, fix other sampler nonsense
Kenneth Graunke [Thu, 28 Jun 2018 08:00:11 +0000 (01:00 -0700)]
iris: border color memory zone :(
They took away our pointer bits, so now we need a pile of special code
to handle this instead of just using u_upload_mgr. :(
Kenneth Graunke [Thu, 28 Jun 2018 08:00:11 +0000 (01:00 -0700)]
iris: don't include binder in surface VMA range
Kenneth Graunke [Thu, 28 Jun 2018 07:57:49 +0000 (00:57 -0700)]
iris: state ref tuple
Kenneth Graunke [Wed, 27 Jun 2018 23:59:59 +0000 (16:59 -0700)]
iris: null surface for unbound textures
avoids crashes...may not be really right
Kenneth Graunke [Wed, 27 Jun 2018 05:41:07 +0000 (22:41 -0700)]
iris: depth clears
Kenneth Graunke [Tue, 26 Jun 2018 20:35:47 +0000 (13:35 -0700)]
iris: fix GS dispatch mode
Kenneth Graunke [Tue, 26 Jun 2018 20:32:19 +0000 (13:32 -0700)]
iris: fix 3DSTATE_VERTEX_ELEMENTS / VF_INSTANCING for 0 elements
Kenneth Graunke [Tue, 26 Jun 2018 20:25:22 +0000 (13:25 -0700)]
iris: don't emit garbage 3DSTATE_VERTEX_BUFFERS when there aren't any
Kenneth Graunke [Tue, 26 Jun 2018 20:11:18 +0000 (13:11 -0700)]
iris: geometry shader support
Kenneth Graunke [Tue, 26 Jun 2018 20:11:05 +0000 (13:11 -0700)]
iris: TES uniform fixes
not that we have a TES, but...
Kenneth Graunke [Tue, 26 Jun 2018 17:09:08 +0000 (10:09 -0700)]
iris: larger polygon offset
Kenneth Graunke [Tue, 26 Jun 2018 17:02:46 +0000 (10:02 -0700)]
iris: fix provoking vertex ordering
had this backwards
Kenneth Graunke [Tue, 26 Jun 2018 14:31:56 +0000 (07:31 -0700)]
iris: maybe-flush before blorp operations
otherwise if we have a lot of back-to-back blorp operations we can
potentially overflow even the chained batch
Kenneth Graunke [Tue, 26 Jun 2018 08:00:37 +0000 (01:00 -0700)]
iris: lightmodel flat
Kenneth Graunke [Tue, 26 Jun 2018 07:28:52 +0000 (00:28 -0700)]
iris: implement copy image
Kenneth Graunke [Tue, 26 Jun 2018 07:17:36 +0000 (00:17 -0700)]
iris: fall back to u_generate_mipmap
It just does blits between layers, which is all we'd do anyway,
and it already should use BLORP because of iris_blit(). Plus it
handles 3D, which our code in i965 doesn't.
Kenneth Graunke [Mon, 25 Jun 2018 20:27:14 +0000 (13:27 -0700)]
iris: clear fix
Kenneth Graunke [Mon, 25 Jun 2018 15:23:40 +0000 (08:23 -0700)]
iris: shader dirty bits
Kenneth Graunke [Mon, 25 Jun 2018 15:25:22 +0000 (08:25 -0700)]
iris: rework DEBUG_REEMIT
don't want to have to special case this everywhere
Kenneth Graunke [Sun, 24 Jun 2018 22:16:34 +0000 (15:16 -0700)]
iris: clears
Kenneth Graunke [Sun, 24 Jun 2018 07:27:58 +0000 (00:27 -0700)]
iris: better boxing on maps