Kenneth Graunke
aaced066e8
iris: fix context restore of 3DSTATE_CONSTANT ranges
...
if clean we want to DO the pinning...not SKIP the pinning.
thanks to Jordan Justen for catching this!
2019-02-21 10:26:08 -08:00
Kenneth Graunke
58a6c99ebe
iris: silence const warning
...
not sure why this is labeled const, I'm pretty sure we are taking the
reference and owning this, so there's no particular reason we can't
change it. it certainly seems to be working for non-compute. and,
freedreno's ir3_shader.c seems to do this as well. still...gross :/
2019-02-21 10:26:08 -08:00
Kenneth Graunke
897f8d9232
iris: refactor program CSO stuff
2019-02-21 10:26:08 -08:00
Caio Marcelo de Oliveira Filho
fb4a3e2736
iris: Fix uses of gl_TessLevel*
...
The backend compiler expects the gl_TessLevel* variables to be mapped
as inputs instead of system values. Use the new PIPE_CAP to get this
behavior from GLSL compiler.
Tested with:
tests/spec/arb_tessellation_shader/execution/vs-tcs-tes-tessinner-tessouter-inputs-quads.shader_test
2019-02-21 10:26:08 -08:00
Kenneth Graunke
2b956a093a
iris: totally untested icelake support
2019-02-21 10:26:08 -08:00
Kenneth Graunke
921790b080
iris: initialize "don't suck" bits, as Ben likes to call them
2019-02-21 10:26:08 -08:00
Kenneth Graunke
73a4cef220
iris: refactor LRIs in context setup
...
we're going to have more of them, so reduce the boilerplate
2019-02-21 10:26:08 -08:00
Kenneth Graunke
2d1db44e8e
iris: enable ARB_enhanced_layouts
2019-02-21 10:26:08 -08:00
Kenneth Graunke
c0422d623c
iris: re-pin binding table contents if we didn't re-emit them
...
fixes glsl-vs-loop and other regressions from multibinder.
2019-02-21 10:26:08 -08:00
Kenneth Graunke
2963276a58
iris: move binder pinning outside the dirty == 0 check
...
This might be a new batch with back to back non-dirty calls, if so we
need to inherit the old binder...
2019-02-21 10:26:08 -08:00
Chris Wilson
1a61a211f0
iris: fix memzone_for_address since multibinder changes
2019-02-21 10:26:08 -08:00
Kenneth Graunke
f6924e2379
iris: update comments for multibinder
2019-02-21 10:26:08 -08:00
Kenneth Graunke
5cb0527c4f
iris: fix SO offset writes for multiple streams
2019-02-21 10:26:08 -08:00
Kenneth Graunke
eff081cdd9
iris: Support multiple binder BOs, update Surface State Base Address
2019-02-21 10:26:08 -08:00
Kenneth Graunke
148e315d96
iris: fix null FB and unbound tex surface state addresses
2019-02-21 10:26:08 -08:00
Kenneth Graunke
f838400a59
iris: set EXEC_OBJECT_CAPTURE on all driver internal buffers
2019-02-21 10:26:08 -08:00
Kenneth Graunke
938afd484a
iris: fix constant buffer 0 to be absolute
...
thanks to Jason for catching this. Fixes some va64 tests. Surprisingly
not much else, as apparently getting to UBO range 4 is uncommon!
2019-02-21 10:26:08 -08:00
Kenneth Graunke
5a2257bb2f
iris: don't unconditionally emit 3DSTATE_VF / 3DSTATE_VF_TOPOLOGY
...
this was just laziness on my part
2019-02-21 10:26:08 -08:00
Kenneth Graunke
4c27cb031c
iris: skip over whole function if dirty == 0
...
kinda pointless in non-pathological cases, but does boost our score in
the drawarrays case by 50%...
2019-02-21 10:26:08 -08:00
Kenneth Graunke
888efcd192
iris: Allow inlining of require/get_command_space
...
eliminates so many callqs for ptr++
2019-02-21 10:26:08 -08:00
Kenneth Graunke
2ebce6f8c8
iris: use Eric's new caps helper
...
this does change a couple caps...PRIMITIVE_RESTART_FOR_PATCHES...
2019-02-21 10:26:08 -08:00
Kenneth Graunke
3e7a41f228
iris: new caps
2019-02-21 10:26:08 -08:00
Kenneth Graunke
52eb8d5593
iris: fix blend state memcpy
...
thanks to Jason for noticing grumpy valgrind
2019-02-21 10:26:08 -08:00
Kenneth Graunke
9ce92fa036
iris: Skip primitive ID overrides if the shader wrote a custom value
...
Fixes glsl-1.50/execution/geometry/primitive-id-out
2019-02-21 10:26:08 -08:00
Kenneth Graunke
47d3019c4a
iris: fix crash when binding optional shader for the first time
2019-02-21 10:26:08 -08:00
Kenneth Graunke
6331b754df
iris: handle level/layer in direct maps
...
needed now that we do 1D linear
2019-02-21 10:26:08 -08:00
Kenneth Graunke
9f7654139b
iris: use linear for 1D textures
...
This gets us the gen9 compact linear storage
2019-02-21 10:26:08 -08:00
Kenneth Graunke
b2a5e1ebb3
iris: big old hack for tex-miplevel-selection
...
copied from ilo. I don't understand this at all..
2019-02-21 10:26:08 -08:00
Kenneth Graunke
e4d22b16c8
iris: fix sampler state setting
2019-02-21 10:26:08 -08:00
Kenneth Graunke
b3bb33c4c1
iris: try to hack around binder issue
2019-02-21 10:26:08 -08:00
Kenneth Graunke
d2516358f9
iris: fix line-aa-width
...
we should probably move the roundf to st_atom_raster
2019-02-21 10:26:08 -08:00
Kenneth Graunke
701b47a197
iris: implement get_sample_position
...
Fixes arb_sample_shading/builtin-gl-sample-position
2019-02-21 10:26:08 -08:00
Kenneth Graunke
7ed4b80233
iris: z_res -> s_res
...
fixes crashes introduced a few commits ago
2019-02-21 10:26:08 -08:00
Kenneth Graunke
d1cb4b330a
iris: reenable R32G32B32 texture buffers
...
This dropped us from GL 4.2 to GL 3.3 by mistake. Thanks to Dave for
catching this!
2019-02-21 10:26:08 -08:00
Chris Wilson
367f6bbd01
iris: Record reusability of bo on construction
...
We know that if the bufmgr->reuse is set to false or if the bo is too
large for a bucket, the same will be true when we come to free the bo.
2019-02-21 10:26:08 -08:00
Kenneth Graunke
abe7dbfa4a
iris: Reduce binder alignment from 64 to 32
...
3DSTATE_BINDING_TABLE_POINTER_XS's alignment requirement is only 32B.
Makes us waste less precious binder space.
2019-02-21 10:26:08 -08:00
Kenneth Graunke
04e8c5bb43
iris: precompute hashes for cache tracking
...
saves a touch of cpu overhead in the new resolve tracking
2019-02-21 10:26:08 -08:00
Chris Wilson
d209cc5170
iris: AMD_pinned_memory
...
(rebased by Ken, mainly set res->internal_format)
2019-02-21 10:26:08 -08:00
Kenneth Graunke
93c1921ce2
iris: proper cache tracking
...
this is copied from the i965 aux resolve stuff...minus the aux resolves
2019-02-21 10:26:08 -08:00
Kenneth Graunke
5e30b1083b
iris: Move cache tracking to iris_resolve.c
2019-02-21 10:26:08 -08:00
Kenneth Graunke
42dccb1233
iris: use consistent copyright formatting
...
some of them had typos, didn't say 'authors or copyright holders',
or other mistakes. This is now https://opensource.org/licenses/MIT
text, formatted consistently.
2019-02-21 10:26:08 -08:00
Kenneth Graunke
1d33982e9b
iris: track depth/stencil writes enabled
2019-02-21 10:26:08 -08:00
Kenneth Graunke
3fecb1c44d
iris: Move iris_sampler_view declaration to iris_resource.h
...
We'll need this for resolve tracking. There's also no genxml stuff here
2019-02-21 10:26:08 -08:00
Kenneth Graunke
b75b52530a
iris: Move things to iris_shader_state
...
We didn't originally have this struct, so we had lots of ad-hoc arrays.
Now that we have it, it makes sense to group things there.
2019-02-21 10:26:08 -08:00
Kenneth Graunke
410a555bfb
iris: move iris_shader_state from ice->shaders.state to ice->state.shaders
...
it's more state related...
2019-02-21 10:26:08 -08:00
Kenneth Graunke
33701d5341
iris: Drop bogus sampler state saving
...
We do this in an earlier loop. This was just reading things out of the
array, and saving them back over the same array...but in the wrong slots
2019-02-21 10:26:08 -08:00
Kenneth Graunke
aba2cee711
iris: rename pipe to base
2019-02-21 10:26:08 -08:00
Kenneth Graunke
7705f62cb6
iris: don't emit SBE all the time
2019-02-21 10:26:08 -08:00
Kenneth Graunke
630d602900
iris: port non-bucket alignment bugfix
...
Sergii's 24839663a4
2019-02-21 10:26:08 -08:00
Kenneth Graunke
ad6ba5a712
iris: drop pwrite
...
nobody uses it
2019-02-21 10:26:08 -08:00