Kenneth Graunke
3c0ef22edb
iris: Enable ARB_shader_vote
...
The easiest get out the vote campaign ever
2019-02-21 10:26:08 -08:00
Kenneth Graunke
0395eba20f
iris: magic number 36 -> #define
2019-02-21 10:26:08 -08:00
Kenneth Graunke
57f8a623c5
iris: better query file comment
2019-02-21 10:26:08 -08:00
Kenneth Graunke
d3a5d87219
iris: early return properly
2019-02-21 10:26:08 -08:00
Kenneth Graunke
07ff8c752f
iris: 36-bit overflow fixes
2019-02-21 10:26:08 -08:00
Kenneth Graunke
dff174c103
iris: Need to | 1 when asking for timestamps
2019-02-21 10:26:08 -08:00
Kenneth Graunke
1d91eba7dc
iris: glGet timestamps, more correct timestamps
2019-02-21 10:26:08 -08:00
Kenneth Graunke
36fbcfb06c
iris: ...and SO prims emitted queries
...
looks like we have queries
some fails still due to races between snapshots_written and start/end
not being garbage...not sure what that's about
2019-02-21 10:26:08 -08:00
Kenneth Graunke
ec82be57e8
iris: timestamps
2019-02-21 10:26:08 -08:00
Kenneth Graunke
23572cdd07
iris: drop explicit pinning
...
writes will already rw_bo or ro_bo that
2019-02-21 10:26:08 -08:00
Kenneth Graunke
d8875fe406
iris: primitives generated query support
2019-02-21 10:26:08 -08:00
Kenneth Graunke
ffae6e3105
iris: pipeline stats
2019-02-21 10:26:08 -08:00
Kenneth Graunke
7840d0e091
iris: play chicken with timer queries for now
...
they have been crashy in the past and I don't want to risk tanking my
laptop right before my XDC talk
2019-02-21 10:26:08 -08:00
Kenneth Graunke
0b095c665d
iris: gpr0 to bool
...
I think OQ is basically working now.
2019-02-21 10:26:08 -08:00
Kenneth Graunke
f5a8908bd1
iris: fix random failures via CS stall...but why?
2019-02-21 10:26:08 -08:00
Kenneth Graunke
ad14795805
iris: flush batch when asking for result via QBO
2019-02-21 10:26:08 -08:00
Kenneth Graunke
cf261caad9
iris: results write
2019-02-21 10:26:08 -08:00
Kenneth Graunke
d4e4517569
iris: gen10+ workarounds and break fix
2019-02-21 10:26:08 -08:00
Kenneth Graunke
dca5632de1
iris: initial query code
2019-02-21 10:26:08 -08:00
Kenneth Graunke
dd478913d5
iris: LRM/SRM/SDI hooks
2019-02-21 10:26:08 -08:00
Kenneth Graunke
af9fe0d472
iris: rw_bo for pipe controls
...
this is used for WRITE IMMEDIATE...
but maybe we don't want to for the workaround BO?
2019-02-21 10:26:08 -08:00
Kenneth Graunke
30c370ed4b
iris: use 0 for TCS passthrough program string ID
...
the passthrough shader doesn't need a real program string ID - that's
basically used for ARB programs indicating total program source code
changes, or other pre-baked uniform changes, etc...none of which a
passthrough shader has...so we don't need a unique identifier to
distinguish them. We want to use a consistent value so we find
existing passthrough shaders in the cache.
2019-02-21 10:26:08 -08:00
Caio Marcelo de Oliveira Filho
54e23442e2
iris: Add support for TCS passthrough
...
If no TCS is provided, create a "passthrough" TCS that will take the
default values set in the API as constants and pass to the TES, along
with any other inputs it expects. The code to create the NIR shader
is the same as in i965.
Tested with
./piglit run -t 'tess' quick_shader r
and fixed a dozen crashes from that list.
2019-02-21 10:26:08 -08:00
Kenneth Graunke
5395658c61
iris: inherit the index buffer properly
2019-02-21 10:26:08 -08:00
Kenneth Graunke
a858b69880
iris: delete bogus comment
...
Caio asked what was wrong. There is nothing wrong. :)
2019-02-21 10:26:08 -08:00
Kenneth Graunke
f2f506fa43
iris: properly re-pin stencil buffers
2019-02-21 10:26:08 -08:00
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