Commit Graph

40511 Commits

Author SHA1 Message Date
Erik Faye-Lund 967e570511 zink: add note about enabling PIPE_CAP_CLIP_HALFZ
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 755037e09d zink: don't crash when setting rast-state to NULL
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 7004afcd24 zink: remove insecure comment
This isn't as inaccurate as the comment says, the Vulkan documentation
even seems to suggest this is the same. Let's drop the comment.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund a10d43d845 zink: avoid texelFetch until it's implemented
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund a9770e2bd2 zink: set ExecutionModeDepthReplacing when depth is written
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 10f26ef92d zink: fixup: save rasterizer
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund c96963a8d1 zink: ensure layout is reasonable before copying
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund c947aee63b zink/spirv: debug-print unknown varying slots
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund c2f52cf94f zink/spirv: be a bit more strict with fragment-results
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 97f4827e2e zink: wait for transfer when reading
TODO: this could really benefit from a separate transfer-queue, I think.
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund a005fae564 zink: support more texturing
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 44f374ced5 zink/spirv: correct opcode
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund baf34dbd75 zink: make sure imageExtent.depth is 1 for arrays
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 67d2e6258e zink: stub resource_from_handle
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund b8a9bbeb00 zink: abort on submit-failure
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 4a64ee192a zink: crash hard on unknown queries
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 86c0217ee9 zink: add more compares
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 06859b70b9 zink: more converts
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund b5bfb72fce zink: more comparison-ops
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund bcd12adce5 zink: implement ineg
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund d19f0b437b zink: add shift ops
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 6032fc65b0 zink: add division ops
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 60bfee1f31 zink: add some opcodes
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 4e60d4d52a zink: clean up opcode-emitting a bit
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 55bcf9b1e0 zink: process one aspect-mask bit at the time
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund cd59de1e3f zink: save all supported util_blitter states
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 4887ceb79e zink: save original scissor and viewport
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund d29cc33a9b zink: store sampler and image_view counts
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 8e5fe441bd zink: use pipe_stencil_ref instead of uint32_t-array
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund e14c29b9f2 zink: document end-of-frame hack
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Erik Faye-Lund 10439594ec zink: only consider format-desc if checking details
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:46 +00:00
Dave Airlie 4480aefc38 zink: attempt to get multisample resource creation right
Use the exposed vulkan limits to fill out supported formats.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Dave Airlie e234116a96 zink: add samples to rasterizer
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Dave Airlie 0c5f3e50ae zink: add sample mask support
This isn't really used yet, but may as well just fill it in.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund dbf67e8a20 zink: refactor fence destruction
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 4c5ade8ca6 zink: drop unused argument
Because si.waitSemaphoreCount is 0, this won't even be looked at by the
driver, so let's just drop it.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 03efb6dd27 zink: cleanup zink_end_batch
This inlines submit_cmdbuf into zink_end_batch, the only place it's
used. This makes the code a bit more straight-forward to read.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 8edd357795 zink: request ucp-lowering
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 80673264cb zink: do not lower io
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund af0dc71d6f zink/spirv: rename vec_type
These aren't guaranteed to be vectors, they can also be scalars. The
var-part is the significant part here, not the vector-ness. So let's
rename these.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 62f7d9afe8 zink/spirv: var -> regs
These track nir-registers, so it's clearer if we refer to them by that
name instead. There's potentially more vars than these.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Dave Airlie 5dbfb02459 zink: add support for compressed formats
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 6ae8686bff zink: request alpha-test lowering
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund d9b7d7b051 zink: pool descriptors per batch
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 9913e5c40b zink: reuse constants
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 8e5d24fedf zink: fix off-by-one in assert
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 35c0ef8852 zink: squashme: trade cplusplus wrapper for header-guard
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund bb76a3f61d zink: squashme: forward declare hash_table
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund fe34a35333 zink: do not use hash-table for regs
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund ca074edc7f zink: clamp scissors
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 249cd3fc13 zink: kill dead code
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Duncan Hopkins d850e2a3f2 zink: clamped limits to INT_MAX when stored as uint32_t.
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 737a2bba35 zink: prepare for shadow-samplers
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 5dfa6be36e zink: keep a reference to used render-passes
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 1927d11fc0 zink: pass screen instead of device to program-functions
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund f90ee9e33a zink: rename sampler-view destroy function
This name is more consistent with other functions.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund e4bbdcbf80 zink: clean up render-pass management
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 0296e8981d zink: remove hack-comment
This isn't a hack, it's how this *should* work.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 2a7302075d zink: ensure sampler-views survive a batch
we don't need to track the resources for the samplers any longer, as
the sampler view holds a reference instead.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 09e20d88e7 zink: fixup parameter name
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 795c0e95c5 zink: use helper
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 9e0ff0ffda zink: more batch-ism
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 33b2f914db zink: cache framebuffers
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund a872f46369 zink: cache render-passes
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 5f21637370 zink: simplify renderpass/framebuffer logic a tad
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 9cac63cae9 zink: implement batching
This reduces stalling quite a bit.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:45 +00:00
Erik Faye-Lund 56b1048bb0 zink: return after blitting
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund ef8750da3d zink: remove unusual alignment
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 94d3b9389e zink: tweak state handling
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 8f6449f296 zink: move primitive-topology stuff into program
The primitive topology is a bit of an odd-ball, as it's the only
truly draw-call specific state that needs to be passed to the program to
get a pipeline.

So let's make this a bit more explict, by passing it separately. This
makes the flow of data a bit easier to wrap your head around.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund e0a93ba351 zink: assign increasing locations to varyings
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund cedf3598b4 zink: ensure textures are transitioned properly
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund c471525fdc zink: ensure non-fragment shaders use lod-versions of texture
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 9cf6163ea1 zink: emit dedicated block for variables
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 93af00502e zink: use uvec for undefs
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund a8e63387f3 zink: do not destroy staging-resource, deref it
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 819f9fd2f2 zink: track used resources
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 5a9f235ac2 zink: implement fmod
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 22d080b3ac zink: store shader_info in zink_shader
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund ce6f19c4ec zink: texture-rects?
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 4ae362c0ef zink: delete samplers after the current cmdbuf
This makes them zombies for a little while.

Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 2e2ad61ef1 zink: add curr_cmdbuf-helper
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 806f040bb3 zink: reference blit/copy-region resources
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund b89eb298ff zink: whitespace cleanup
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 453d9f193a zink: wait for idle on context-destroy
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 8541b58e39 zink: reference ubos and textures
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 21cffebe4f zink: reference vertex and index buffers
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund a27b84dd2e zink: return old fence from zink_flush
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 0fcc9550b2 zink: reference renderpass and framebuffer from cmdbuf
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund ce66749e0b zink: cache those pipelines
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 8e56b828e4 zink: move renderpass inside gfx pipeline state
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 1cdbeefd2c zink: cache programs
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund fba0293bef zink: pass zink_render_pass to pipeline-creation
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 86d0e741ec zink: prepare for multiple cmdbufs
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund 229cd042d3 zink: move cmdbuf-resetting into a helper
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund ac45bc2359 zink: do not leak image-views
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:44 +00:00
Erik Faye-Lund e64cc463e3 zink: move render-pass begin to helper
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:43 +00:00
Erik Faye-Lund 7034422389 zink: prepare for caching of renderpases/framebuffers
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:43 +00:00
Erik Faye-Lund b458863c1e zink/spirv: implement loops
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:43 +00:00
Erik Faye-Lund acdd12dae3 zink/spirv: implement discard
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-28 08:51:43 +00:00