Kenneth Graunke [Fri, 26 Jan 2018 03:43:45 +0000 (19:43 -0800)]
iris: actually destroy the cache
Kenneth Graunke [Fri, 26 Jan 2018 03:39:10 +0000 (19:39 -0800)]
iris: rewrite program cache to use u_upload_mgr
Kenneth Graunke [Thu, 25 Jan 2018 18:57:13 +0000 (10:57 -0800)]
iris: no NEW_SBA
Kenneth Graunke [Thu, 25 Jan 2018 10:13:28 +0000 (02:13 -0800)]
iris: shuffle comments
Kenneth Graunke [Thu, 25 Jan 2018 10:09:59 +0000 (02:09 -0800)]
iris: bits of WM key
Kenneth Graunke [Thu, 25 Jan 2018 10:03:18 +0000 (02:03 -0800)]
iris: move key pop to state module
shader key population needs to read state
Kenneth Graunke [Thu, 25 Jan 2018 09:53:52 +0000 (01:53 -0800)]
iris: fix SBA
Kenneth Graunke [Thu, 25 Jan 2018 09:36:49 +0000 (01:36 -0800)]
iris: use vtbl to avoid multiple symbols, fix state base address
Kenneth Graunke [Thu, 25 Jan 2018 09:19:58 +0000 (01:19 -0800)]
iris: softpin some things
Kenneth Graunke [Wed, 24 Jan 2018 04:01:28 +0000 (20:01 -0800)]
iris: drop const from prog data parameters
we ralloc steal things, which makes it a little bogus
Kenneth Graunke [Tue, 23 Jan 2018 09:23:54 +0000 (01:23 -0800)]
iris: more comes from bits filled in
tomorrow, fix the build system to avoid symbol clashes somehow...
we're getting gen9 functions because they happen to be listed before 10
in the link list.
Kenneth Graunke [Tue, 23 Jan 2018 09:10:05 +0000 (01:10 -0800)]
iris: index buffer BO
Kenneth Graunke [Tue, 23 Jan 2018 09:07:09 +0000 (01:07 -0800)]
iris: WM.
I could have added a dirty bit for this, but it doesn't seem worth it
Kenneth Graunke [Tue, 23 Jan 2018 08:44:44 +0000 (00:44 -0800)]
iris: initial gpu state
Kenneth Graunke [Tue, 23 Jan 2018 07:39:38 +0000 (23:39 -0800)]
iris: reorganize commands to match brw
Kenneth Graunke [Tue, 23 Jan 2018 07:25:18 +0000 (23:25 -0800)]
iris: don't forget about TE
Kenneth Graunke [Tue, 23 Jan 2018 07:03:54 +0000 (23:03 -0800)]
iris: convert IRIS_DIRTY_* to #defines
enums are SIGNED. so IRIS_DIRTY_VS << 4 gets sign extended, making it
not equal to IRIS_DIRTY_FS. Surprising!
Kenneth Graunke [Tue, 23 Jan 2018 06:40:51 +0000 (22:40 -0800)]
iris: emit shader packets
Kenneth Graunke [Tue, 23 Jan 2018 06:31:27 +0000 (22:31 -0800)]
iris: actually save derived state
Kenneth Graunke [Mon, 22 Jan 2018 19:52:58 +0000 (11:52 -0800)]
iris: promote iris_program_cache_item to iris_compiled_shader
Kenneth Graunke [Mon, 22 Jan 2018 07:55:04 +0000 (23:55 -0800)]
iris: some shader bits
Kenneth Graunke [Mon, 22 Jan 2018 05:23:48 +0000 (21:23 -0800)]
iris: scissor slots
Kenneth Graunke [Mon, 22 Jan 2018 05:20:44 +0000 (21:20 -0800)]
iris: bind_state -> compute state
Kenneth Graunke [Mon, 22 Jan 2018 05:19:26 +0000 (21:19 -0800)]
iris: 3DPRIMITIVE fields
Kenneth Graunke [Mon, 22 Jan 2018 05:09:30 +0000 (21:09 -0800)]
iris: fix VF instancing length so we don't get garbage in batch
Kenneth Graunke [Mon, 22 Jan 2018 05:02:05 +0000 (21:02 -0800)]
iris: vertex packet fixes
Kenneth Graunke [Mon, 22 Jan 2018 04:10:57 +0000 (20:10 -0800)]
iris: fix VBs
Kenneth Graunke [Mon, 22 Jan 2018 04:10:43 +0000 (20:10 -0800)]
iris: fix assert
Kenneth Graunke [Mon, 22 Jan 2018 02:12:18 +0000 (18:12 -0800)]
iris: fix indentation
Kenneth Graunke [Mon, 22 Jan 2018 02:08:15 +0000 (18:08 -0800)]
iris: hack to stop crashing on samplers for now
Kenneth Graunke [Mon, 22 Jan 2018 02:04:05 +0000 (18:04 -0800)]
iris: initialize dirty bits to ~0ull
Kenneth Graunke [Mon, 22 Jan 2018 02:03:58 +0000 (18:03 -0800)]
iris: actually advance forward when emitting commands
Kenneth Graunke [Mon, 22 Jan 2018 01:44:08 +0000 (17:44 -0800)]
iris: actually flush the commands
Kenneth Graunke [Mon, 22 Jan 2018 01:43:49 +0000 (17:43 -0800)]
iris: actually APPEND commands, not stomp over the top and never incr
Kenneth Graunke [Mon, 22 Jan 2018 01:34:41 +0000 (17:34 -0800)]
iris: VB fixes
Kenneth Graunke [Mon, 22 Jan 2018 00:49:02 +0000 (16:49 -0800)]
iris: DEBUG=bat
Deleted in the interest of making the branch compile at each step
Kenneth Graunke [Sun, 21 Jan 2018 23:28:59 +0000 (15:28 -0800)]
iris: VB addresses
Kenneth Graunke [Sun, 21 Jan 2018 21:14:49 +0000 (13:14 -0800)]
iris: reference VB BOs
Kenneth Graunke [Sun, 21 Jan 2018 20:26:09 +0000 (12:26 -0800)]
iris: so, sba then.
Kenneth Graunke [Sun, 21 Jan 2018 20:20:30 +0000 (12:20 -0800)]
iris: try and have an iris address
Kenneth Graunke [Sun, 21 Jan 2018 08:36:54 +0000 (00:36 -0800)]
iris: flag SBA updates when instruction BO changes
Kenneth Graunke [Sun, 21 Jan 2018 08:16:26 +0000 (00:16 -0800)]
iris: bit of SBA code
genxml MOCS is stupid, addresses are hard news at 11
Kenneth Graunke [Sun, 21 Jan 2018 08:16:15 +0000 (00:16 -0800)]
iris: move MAX defines to iris_batch.h
for SBA
Kenneth Graunke [Sun, 21 Jan 2018 07:14:24 +0000 (23:14 -0800)]
iris: kill iris_new_batch
reset and new are too similar, and this had exactly one caller
Kenneth Graunke [Sun, 21 Jan 2018 07:11:37 +0000 (23:11 -0800)]
iris: make iris_batch target a particular ring
Kenneth Graunke [Sun, 21 Jan 2018 07:04:02 +0000 (23:04 -0800)]
iris: lower io
Kenneth Graunke [Sun, 21 Jan 2018 00:56:59 +0000 (16:56 -0800)]
iris: do the FS...asserts because we don't lower uniforms yet
Kenneth Graunke [Sat, 20 Jan 2018 10:47:04 +0000 (02:47 -0800)]
iris: import program cache code
Kenneth Graunke [Sat, 20 Jan 2018 10:01:07 +0000 (02:01 -0800)]
iris: reworks, FS compile pieces
Kenneth Graunke [Sat, 20 Jan 2018 09:12:12 +0000 (01:12 -0800)]
iris: parse INTEL_DEBUG
Kenneth Graunke [Sat, 20 Jan 2018 09:09:36 +0000 (01:09 -0800)]
iris: draw->restart_index is uninitialized if PR is not enabled
Kenneth Graunke [Sat, 20 Jan 2018 09:07:41 +0000 (01:07 -0800)]
iris: fix bogus index buffer reference
Kenneth Graunke [Sat, 20 Jan 2018 09:05:13 +0000 (01:05 -0800)]
iris: fix prim type
Kenneth Graunke [Sat, 20 Jan 2018 08:59:49 +0000 (00:59 -0800)]
iris: msaa sample count packing problems
0 ->
ffffffffffffffffffffffffffff
Kenneth Graunke [Sat, 20 Jan 2018 08:57:01 +0000 (00:57 -0800)]
iris: actually save VBs
Kenneth Graunke [Sat, 20 Jan 2018 08:55:16 +0000 (00:55 -0800)]
iris: fix/rework line stipple
Kenneth Graunke [Sat, 20 Jan 2018 05:55:32 +0000 (21:55 -0800)]
iris: init the batch!
Kenneth Graunke [Sat, 20 Jan 2018 02:57:30 +0000 (18:57 -0800)]
iris: delete iris_pipe.c, shuffle code around
Kenneth Graunke [Sat, 20 Jan 2018 02:35:24 +0000 (18:35 -0800)]
iris: disable execbuf for now
Kenneth Graunke [Sat, 20 Jan 2018 02:25:55 +0000 (18:25 -0800)]
iris: make an ice->render_batch field
we may want a second one for transfers
Kenneth Graunke [Sat, 20 Jan 2018 02:23:59 +0000 (18:23 -0800)]
iris: drop unused field
Kenneth Graunke [Fri, 19 Jan 2018 23:41:46 +0000 (15:41 -0800)]
iris: shader debug log
Kenneth Graunke [Fri, 19 Jan 2018 23:30:55 +0000 (15:30 -0800)]
iris: maps
Kenneth Graunke [Fri, 19 Jan 2018 23:09:05 +0000 (15:09 -0800)]
iris: linear resources
Kenneth Graunke [Tue, 16 Jan 2018 09:15:15 +0000 (01:15 -0800)]
iris: some program code
Kenneth Graunke [Fri, 12 Jan 2018 07:01:28 +0000 (23:01 -0800)]
iris: basic push constant alloc
Kenneth Graunke [Fri, 12 Jan 2018 06:50:12 +0000 (22:50 -0800)]
iris: emit 3DSTATE_SAMPLER_STATE_POINTERS
Kenneth Graunke [Fri, 12 Jan 2018 06:18:54 +0000 (22:18 -0800)]
iris: sampler states
Kenneth Graunke [Wed, 10 Jan 2018 08:36:44 +0000 (00:36 -0800)]
iris: COLOR_CALC_STATE
Kenneth Graunke [Wed, 10 Jan 2018 08:21:56 +0000 (00:21 -0800)]
iris: fix crash - CSO binding can be NULL (when destroying context)
Kenneth Graunke [Wed, 10 Jan 2018 08:19:29 +0000 (00:19 -0800)]
iris: some draw info, vbs, sample mask
Kenneth Graunke [Wed, 10 Jan 2018 07:30:21 +0000 (23:30 -0800)]
iris: a bit of depth
still need to allocate separate stencil
Kenneth Graunke [Wed, 10 Jan 2018 07:17:43 +0000 (23:17 -0800)]
iris: fix SF_CL length
Kenneth Graunke [Wed, 10 Jan 2018 07:14:10 +0000 (23:14 -0800)]
iris: don't segfault on !old_cso
Kenneth Graunke [Wed, 10 Jan 2018 07:13:16 +0000 (23:13 -0800)]
iris: framebuffers
Kenneth Graunke [Wed, 10 Jan 2018 05:29:09 +0000 (21:29 -0800)]
iris: stipples and vertex elements
Kenneth Graunke [Wed, 10 Jan 2018 01:54:43 +0000 (17:54 -0800)]
iris: sampler views
Kenneth Graunke [Tue, 9 Jan 2018 22:34:15 +0000 (14:34 -0800)]
iris: Surfaces!
Kenneth Graunke [Tue, 9 Jan 2018 19:58:28 +0000 (11:58 -0800)]
iris: SF_CLIP_VIEWPORT
Kenneth Graunke [Tue, 9 Jan 2018 19:51:34 +0000 (11:51 -0800)]
iris: scissors
Kenneth Graunke [Tue, 9 Jan 2018 19:44:04 +0000 (11:44 -0800)]
iris: RASTER + SF + some CLIP, fix DIRTY vs. NEW
Kenneth Graunke [Tue, 9 Jan 2018 19:25:29 +0000 (11:25 -0800)]
iris: initial gpu state, merges
Kenneth Graunke [Mon, 8 Jan 2018 22:44:22 +0000 (14:44 -0800)]
iris: merge pack
this lets us merge dynamic and pre-baked state, also like anv
Kenneth Graunke [Mon, 8 Jan 2018 22:44:14 +0000 (14:44 -0800)]
iris: packing with valgrind.
borrowed macros from anv!
Kenneth Graunke [Wed, 27 Dec 2017 10:54:26 +0000 (02:54 -0800)]
iris: initial render state upload
Kenneth Graunke [Wed, 27 Dec 2017 10:25:20 +0000 (02:25 -0800)]
iris: port over batchbuffer updates
Kenneth Graunke [Sat, 23 Dec 2017 22:33:04 +0000 (14:33 -0800)]
iris: viewport state, sort of
Kenneth Graunke [Fri, 24 Nov 2017 07:15:14 +0000 (23:15 -0800)]
iris: Initial commit of a new 'iris' driver for Intel Gen8+ GPUs.
This commit introduces a new Gallium driver for Intel Gen8+ GPUs,
named 'iris_dri.so' after the hardware.
Developed by:
- Kenneth Graunke (overall driver)
- Dave Airlie (shaders, conditional render, overflow query, Gen8 port)
- Chris Wilson (fencing, pinned memory, ...)
- Jordan Justen (compute shaders)
- Jason Ekstrand (image load store)
- Caio Marcelo de Oliveira Filho (tessellation control passthrough)
- Rafael Antognolli (auxiliary buffer fixes)
- The rest of the i965 contributors and the Mesa community
James Zhu [Fri, 15 Feb 2019 20:33:43 +0000 (15:33 -0500)]
gallium/auxiliary/vl: Fix transparent issue on compute shader with rgba
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109646
Problem 1,4: they are caused by imcomplete blend comute shader
implementation. So Reverts rgba back to frament shader.
Fixes: 9364d66cb7f7 (Add video compositor compute shader render)
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Tested-by: Bruno Milreu <bmilreu@gmail.com>
Lionel Landwerlin [Sat, 19 Jan 2019 21:26:12 +0000 (21:26 +0000)]
vulkan: add an overlay layer
Just a starting point to display frame timings & drawcalls/submissions
per frame.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
+1-by: Mike Lothian <mike@fireburn.co.uk>
+1-by: Tapani Pälli <tapani.palli@intel.com>
+1-by: Eric Engestrom <eric.engestrom@intel.com>
+1-by: Yurii Kolesnykov <root@yurikoles.com>
+1-by: myfreeweb <greg@unrelenting.technology>
+1-by: Kenneth Graunke <kenneth@whitecape.org>
Lionel Landwerlin [Tue, 22 Jan 2019 13:04:20 +0000 (13:04 +0000)]
imgui: make sure our copy of imgui doesn't clash with others in the same process
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
+1-by: Mike Lothian <mike@fireburn.co.uk>
+1-by: Tapani Pälli <tapani.palli@intel.com>
+1-by: Eric Engestrom <eric.engestrom@intel.com>
+1-by: Yurii Kolesnykov <root@yurikoles.com>
+1-by: myfreeweb <greg@unrelenting.technology>
+1-by: Kenneth Graunke <kenneth@whitecape.org>
Lionel Landwerlin [Sat, 19 Jan 2019 21:37:35 +0000 (21:37 +0000)]
imgui: bump copy
Updated at :
commit
f977871854af941289f2a9090dcc90f7aa3449a8
Author: omar <omarcornut@gmail.com>
Date: Fri Feb 15 13:10:22 2019 +0100
ImFont: Minor adjustment to the structure.
Examples: Removed unused variable.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
+1-by: Mike Lothian <mike@fireburn.co.uk>
+1-by: Tapani Pälli <tapani.palli@intel.com>
+1-by: Eric Engestrom <eric.engestrom@intel.com>
+1-by: Yurii Kolesnykov <root@yurikoles.com>
+1-by: myfreeweb <greg@unrelenting.technology>
+1-by: Kenneth Graunke <kenneth@whitecape.org>
Lionel Landwerlin [Sat, 19 Jan 2019 20:02:13 +0000 (20:02 +0000)]
build: move imgui out of src/intel/tools to be reused
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
+1-by: Mike Lothian <mike@fireburn.co.uk>
+1-by: Tapani Pälli <tapani.palli@intel.com>
+1-by: Eric Engestrom <eric.engestrom@intel.com>
+1-by: Yurii Kolesnykov <root@yurikoles.com>
+1-by: myfreeweb <greg@unrelenting.technology>
+1-by: Kenneth Graunke <kenneth@whitecape.org>
Jason Ekstrand [Thu, 21 Feb 2019 15:53:30 +0000 (09:53 -0600)]
nir/lower_clip_cull: Fix an incorrect assert
Copy+paste error. It was supposed to test cull and not clip.
Fixes: 4e69fba534e "nir: Rewrite lower_clip_cull_distance_arrays..."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109717
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Jason Ekstrand [Thu, 21 Feb 2019 15:44:33 +0000 (09:44 -0600)]
nir: Fix a compile warning
Rob Clark [Thu, 21 Feb 2019 13:26:18 +0000 (08:26 -0500)]
freedreno/a6xx: enable tiled images
Turns out we can write to tiled images as well as read. This avoids
having to linearize or do the tiling in the shader.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Alejandro Piñeiro [Thu, 7 Feb 2019 17:43:58 +0000 (18:43 +0100)]
nir, glsl: move pixel_center_integer/origin_upper_left to shader_info.fs
On GLSL that info is set as a layout qualifier when redeclaring
gl_FragCoord, so somehow tied to a specific variable. But in practice,
they behave as a global of the shader. On ARB programs they are set
using a global OPTION (defined at ARB_fragment_coord_conventions), and
on SPIR-V using ExecutionModes, that are also not tied specifically to
the builtin.
This patch moves that info from nir variable and ir variable to nir
shader and gl_program shader_info respectively, so the map is more
similar to SPIR-V, and ARB programs, instead of more similar to GLSL.
FWIW, shader_info.fs already had pixel_center_integer, so this change
also removes some redundancy. Also, as struct gl_program also includes
a shader_info, we removed gl_program::OriginUpperLeft and
PixelCenterInteger, as it would be superfluous.
This change was needed because recently spirv_to_nir changed the order
in which execution modes and variables are handled, so the variables
didn't get the correct values. Now the info is set on the shader
itself, and we don't need to go back to the builtin variable to set
it.
Fixes: e68871f6a ("spirv: Handle constants and types before execution
modes")
v2: (Jason)
* glsl_to_nir: get the info before glsl_to_nir, while all the rest
of the info gathering is happening
* prog_to_nir: gather the info on a general info-gathering pass,
not on variable setup.
v3: (Jason)
* Squash with the patch that removes that info from ir variable
* anv: assert that OriginUpperLeft is true. It should be already
set by spirv_to_nir.
* blorp: set origin_upper_left on its core "compile fragment
shader", not just on some specific places (for this we added an
helper on a previous patch).
* prog_to_nir: no need to gather specifically this fragcoord modes
as the full gl_program shader_info is copied.
* spirv_to_nir: assert that we are a fragment shader when handling
this execution modes.
v4: (reported by failing gitlab pipeline #18750)
* state_tracker: update too due changes on ir.h/gl_program
v5:
* blorp: minor change after change on previous patch
* radeonsi: update due this change.
v6: (Timothy Arceri)
* prog_to_nir: remove extra whitespace
* shader_info: don't use :1 on origin_upper_left
* glsl: program.fs.origin_upper_left/pixel_center_integer can be
move out of the shader list loop
Alejandro Piñeiro [Wed, 13 Feb 2019 11:11:47 +0000 (12:11 +0100)]
blorp: introduce helper method blorp_nir_init_shader
This initializes the nir shader that will be used by blorp. Right now
it doesn't do too much beyond calling nir_builder_init_simple_shader,
and setting a name. More stuff will be added on following patches.
v2: there is a case were it is used a VERTEX_SHADER (Alejandro)
Alyssa Rosenzweig [Mon, 18 Feb 2019 04:29:20 +0000 (04:29 +0000)]
panfrost: Verify and print brx condition in disasm
The condition code in extended branches is repeated 8 times for unclear
reasons; accordingly, the code would be disassembled as "unknown5555",
"unknownAAAA", etc. This patch correctly masks off the lower two bits to
find the true code to print, verifying that the code is repeated as
believed to be necessary (providing some assurance for compiler quality
and an assert trip in case we encounter a shader in the wild that breaks
the convention).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Alyssa Rosenzweig [Sun, 17 Feb 2019 23:24:39 +0000 (23:24 +0000)]
panfrost: Dynamically set discard branch targets
discard and discard_if are both implemented with the branching pipeline
on Midgard; essentially, we branch to the end of the fragment shader in
a special "discard" mode, setting the condition as necessary.
Previously, we hardcoded the form of this instruction, which worked for
very simple shaders but was incorrect for anything remotely interesting.
This patch instead emits logical branches in the IR, which are flattened
to real discard ops the same way other branches are, allowing targets to
be computed correctly.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>