Jason Ekstrand
3a38b0db5f
vk/meta: Clean up temporary objects
2015-06-09 12:36:23 -07:00
Kristian Høgsberg Kristensen
a37d122e88
vk: Set color/blend state in meta clear if not set yet
2015-06-02 23:08:05 -07:00
Jason Ekstrand
2251305e1a
vk/cmd_buffer: Track descriptor set dirtying per-stage
2015-05-30 10:07:29 -07:00
Jason Ekstrand
c4bd5f87a0
vk/device: Do lazy surface state emission for binding tables
...
Before, we were emitting surface states up-front when binding tables were
updated. Now, we wait to emit the surface states until we emit the binding
table. This makes meta simpler and should make it easier to deal with
swapping out the surface state buffer.
2015-05-29 16:51:11 -07:00
Jason Ekstrand
de221a672d
meta: Add a default ds_state and use it when no ds state is set
2015-05-28 10:06:45 -07:00
Jason Ekstrand
6eefeb1f84
vk/meta: Share the dummy RS and CB state between clear and blit
2015-05-28 10:00:38 -07:00
Jason Ekstrand
b23885857f
vk/meta: Actually create the CB state for blits
2015-05-27 12:06:30 -07:00
Kristian Høgsberg
1cd8437b9d
vk/meta: Allocate and set color/blend state
...
For color blend, we have to set our own state to avoid inheriting bogus
blend state.
2015-05-26 17:12:37 -07:00
Jason Ekstrand
519fe765e2
vk: Do relocations in surface states when they are created
...
Previously, we waited until later and did a pass through the used surfaces
and did the relocations then. This lead to doing double-relocations which
was causing us to get bogus surface offsets.
2015-05-21 15:55:29 -07:00
Jason Ekstrand
0e441cde71
vk: Bake the GLSL_VK_SHADER macro into the scraper output file
2015-05-21 12:21:00 -07:00
Jason Ekstrand
f17e835c26
vk/meta: Use glsl_scraper for our GLSL source
...
We are not yet using SPIR-V for meta but this is a first step.
2015-05-21 11:39:54 -07:00
Kristian Høgsberg
a1bd426393
vk: Stream surface state instead of using the surface pool
...
Since the binding table pointer is only 16 bits, we can only have 64kb
of binding table state allocated at any given time. With a block size of
1kb, that amounts to just 64 command buffers, which is not enough.
2015-05-20 20:34:52 -07:00
Jason Ekstrand
bea66ac5ad
vk/meta: Add support for copying arbitrary size buffers
2015-05-20 16:20:04 -07:00
Jason Ekstrand
9557b85e3d
vk/meta: Use the biggest format possible for buffer copies
...
This should substantially improve throughput of buffer copies.
2015-05-20 16:20:04 -07:00
Jason Ekstrand
13719e9225
vk/meta: Fix buffer copy extents
2015-05-20 16:20:04 -07:00
Jason Ekstrand
d7044a19b1
vk/meta: Use texture() instead of texture2D()
2015-05-19 12:44:35 -07:00
Jason Ekstrand
edff076188
vk: Use binding instead of index in uniform layout qualifiers
...
This more closely matches what the Vulkan docs say to do.
2015-05-19 12:44:22 -07:00
Jason Ekstrand
851495d344
vk/meta: Use the new *view_init functions and stack-allocated views
...
This should save us a good deal of the leakage that meta currently has.
2015-05-18 20:57:43 -07:00
Kristian Høgsberg
f330bad545
vk: Only fill render targets for meta clear
...
Clear inherits the render targets from the current render pass. This
means we need to fill out the binding table after switching to meta
bindings. However, meta copies etc happen outside a render pass and
break when we try to fill in the render targets. This change fills the
render targets only for meta clear.
2015-05-18 20:52:43 -07:00
Jason Ekstrand
8440b13f55
vk/meta: Rework the indentation style
...
No functional change.
2015-05-18 10:43:51 -07:00
Jason Ekstrand
cd7ab6ba4e
vk/meta: Add an initial implementation of vkCmdCopyBuffer
...
Compile-tested only
2015-05-18 10:27:08 -07:00
Jason Ekstrand
c25ce55fd3
vk/meta: Add an initial implementation of vkCmdCopyBufferToImage
...
Compile-tested only
2015-05-18 10:27:08 -07:00
Jason Ekstrand
08bd554cda
vk/meta: Add an initial implementation of vkCmdBlitImage
...
Compile-tested only
2015-05-18 10:27:08 -07:00
Jason Ekstrand
fb27d80781
vk/meta: Add an initial implementation of vkCmdCopyImage
...
Compile-tested only
2015-05-18 10:27:08 -07:00
Kristian Høgsberg
e26a7ffbd9
vk/meta: Use anv_* internal entrypoints
2015-05-18 10:27:07 -07:00
Kristian Høgsberg
454345da1e
vk: Add script for generating ifunc entry points
...
This lets us generate a hash table for vkGetProcAddress and lets us call
public functions internally without the public entrypoint overhead.
2015-05-18 10:27:02 -07:00
Jason Ekstrand
22e61c9da4
vk/meta: Make clear a no-op if no layers need clearing
...
Among other things, this prevents recursive meta.
2015-05-16 10:30:05 -07:00
Jason Ekstrand
120394ac92
vk/meta: Save and restore the old bindings pointer
...
If we don't do this then recursive meta is completely broken. What happens
is that the outer meta call may change the bindings pointer and the inner
meta call will change it again and, when it exits set it back to the
default. However, the outer meta call may be relying on it being left
alone so it uses the non-meta descriptor sets instead of its own.
2015-05-16 10:28:04 -07:00
Kristian Høgsberg
3b9f32e893
vk: Make cmd_buffer->bindings a pointer
...
This lets us save and restore efficiently by just moving the pointer to
a temporary bindings struct for meta.
2015-05-15 18:12:07 -07:00
Kristian Høgsberg
9540130c41
vk: Move vertex buffers into struct anv_bindings
2015-05-15 16:34:31 -07:00
Kristian Høgsberg
af45f4a558
vk: Fix warning from missing initializer
...
Struct initializers need to be { 0, } to zero out the variable they're
initializing.
2015-05-15 16:07:17 -07:00
Kristian Høgsberg
bf096c9ec3
vk: Build binding tables at bind descriptor time
...
This changes the way descriptor sets and layouts work so that we fill
out binding table contents at the time we bind descriptor sets. We
manipulate the binding table contents and sampler state in a shadow-copy
in anv_cmd_buffer. At draw time, we allocate the actual binding table
and sampler state and flush the anv_cmd_buffer copies.
2015-05-15 16:05:31 -07:00
Kristian Høgsberg
f5b0f1351f
vk: Consolidate image, buffer and color attachment views
...
These are all just surface state, offset and a bo.
2015-05-15 15:22:29 -07:00
Jason Ekstrand
79ace6def6
vk/meta: Add a magic GLSL shader source macro
2015-05-14 19:07:34 -07:00
Jason Ekstrand
018a0c1741
vk/meta: Add a better comment about the VS for blits
2015-05-14 11:39:32 -07:00
Jason Ekstrand
bd5b76d6d0
vk/meta: Add the start of a blit implementation
...
Currently, we only implement CopyImageToBuffer
2015-05-13 22:23:30 -07:00
Jason Ekstrand
43126388cd
vk/meta: Save/restore more stuff in cmd_buffer_restore
2015-05-13 22:22:59 -07:00
Jason Ekstrand
ffe9f60358
vk: Add stub() and stub_return() macros and mark piles of functions as stubs
2015-05-12 13:45:02 -07:00
Jason Ekstrand
7727720585
vk/meta: Break setting up meta clear state into it's own functin
2015-05-12 13:03:50 -07:00
Kristian Høgsberg
d77c34d1d2
vk: Add clear load-op for render passes
2015-05-11 23:25:29 -07:00
Kristian Høgsberg
769785c497
Add vulkan driver for BDW
2015-05-09 11:38:32 -07:00