Kristian Høgsberg
f9e66ea621
vk: Remove render pass stub call
...
This isn't really a stub.
2015-05-20 20:34:52 -07:00
Kristian Høgsberg
a29df71dd2
vk: Add WSI implementation
2015-05-20 20:34:52 -07:00
Kristian Høgsberg
f886647b75
vk: Add debug stubs
2015-05-20 20:34:52 -07:00
Kristian Høgsberg
63da974529
vk: Mark remaining unsupported formats as such
2015-05-20 20:34:52 -07:00
Kristian Høgsberg
387a1bb58f
vk: Mark VK_FORMAT_UNDEFINED as 1 cpp, 1 channel
2015-05-20 20:34:52 -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
Kristian Høgsberg
01504057f5
vk: Use surface_format_info from dri driver for vkGetFormatInfo
2015-05-20 20:34:52 -07:00
Chad Versace
a61f307996
vk: Fix result of vkCreateInstance
...
When fill_physical_device() fails, don't return VK_SUCCESS.
2015-05-20 19:51:10 -07:00
Jason Ekstrand
14929046ba
vk/compiler: Add shader language detection
...
This commit adds support for the LunarG GLSL back-door as well as detecting
regular GLSL and SPIR-V. The SPIR-V path doesn't exist yet, so that will
cause an assert-fail.
2015-05-20 17:05:41 -07:00
Jason Ekstrand
47c1cf5ce6
vk/test: Add a test for testing buffer copies
2015-05-20 16:20:04 -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
e37a89136f
vk/glsl_scraper: Add a --glsl-only option
2015-05-19 11:29:07 -07:00
Jason Ekstrand
4bcf58a192
vk/glsl_scraper: Use the line number from the end of the macro
...
We used to use the line number from the start of the macro but this doesn't
seem to match the c preprocessor
2015-05-19 11:29:07 -07:00
Jason Ekstrand
1573913194
vk/glsl_scraper: Don't open files until needed
...
This prevents us from writing an empty file when the compile failed.
2015-05-19 11:29:07 -07:00
Kristian Høgsberg
e4c11f50b5
vk: Call finish for binding table state stream
2015-05-18 21:12:13 -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
Jason Ekstrand
4668bbb161
vk/image: Factor view creation out into separate *_init functions
...
The *_init functions work basically the same as the Vulkan entrypoints
except that they act on an already-created view and take an optional
command buffer option. If a command buffer is given, the surface state is
allocated out of the command buffer's state stream.
2015-05-18 20:57:43 -07:00
Jason Ekstrand
7c9f209427
Revert "vk/allocator: Don't use memfd when valgrind is detected"
...
This reverts commit b6ab076d6b .
It turns out setting USE_MEMFD to 0 is really bad because it means we can't
resize the pool. Besides, valgrind SVN handles memfd so we really don't
need this fallback for valgrind anymore.
2015-05-18 20:57:43 -07:00
Jason Ekstrand
923691c70d
vk: Use a separate block pool and state stream for binding tables
...
The binding table pointers packet only allows for a 16-bit binding table
address so all binding tables have to be in the first 64 KB of the surface
state BO. We solve this by adding a slave block pool that pulls off the
first 64 KB worth of blocks and reserves them for binding tables.
2015-05-18 20:57:43 -07:00
Jason Ekstrand
d24f8245db
vk/allocator: Add a concept of a slave block pool
...
We probably need a better name but this will do for now.
2015-05-18 20:57:43 -07:00
Kristian Høgsberg
997596e4c4
vk/test: Add test that prints format features
2015-05-18 20:52:44 -07:00
Kristian Høgsberg
241b59cba0
vk/test: Test timestamps and occlusion queries
2015-05-18 20:52:44 -07:00
Kristian Høgsberg
ae9ac47c74
vk: Make timestamp command work correctly
...
This was using the wrong timestamp register and needs to write a 64 bit
value.
2015-05-18 20:52:43 -07:00
Kristian Høgsberg
82ddab4b18
vk: Make occlusion query work, both copy and get functions
2015-05-18 20:52:43 -07:00
Kristian Høgsberg
1d40e6ade8
vk: Update generated header files
...
This fixes a problem where register addresses where incorrectly shifted.
2015-05-18 20:52: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
b6c7d8c911
vk/pipeline: Use a state_stream for storing programs
...
Previously, we were effectively using a state_stream, it was just
hand-rolled based on a block pool. Now we actually use the data structure.
2015-05-18 15:58:20 -07:00
Jason Ekstrand
4063b7deb8
vk/allocator: Add support for valgrind tracking of state pools and streams
...
We leave the block pool untracked so that reads/writes to freed blocks
will get caught and do the tracking at the state pool/stream level. We
have to do a few extra gymnastics for streams because valgrind works in
terms of poitners and we work in terms of separate map and offset.
Fortunately, the users of the state pool and stream should always be using
the map pointer provided in the anv_state structure. We just have to
track, per block, the map that was used when we initially got the block.
Then we can make sure we always use that map and valgrind should stay
happy.
2015-05-18 15:58:20 -07:00
Jason Ekstrand
b6ab076d6b
vk/allocator: Don't use memfd when valgrind is detected
2015-05-18 15:58:20 -07:00
Jason Ekstrand
682d11a6e8
vk/allocator: Assert that block_pool_grow succeeds
2015-05-18 15:48:19 -07:00
Jason Ekstrand
28804fb9e4
vk/gem: VG_CLEAR the padding for the gem_mmap struct
2015-05-18 12:05:17 -07:00
Jason Ekstrand
8440b13f55
vk/meta: Rework the indentation style
...
No functional change.
2015-05-18 10:43:51 -07:00
Kristian Høgsberg
5286ef7849
vk: Provide more realistic values for device info
2015-05-18 10:27:08 -07:00
Kristian Høgsberg
69fd473321
vk: Use a temporary buffer for formatting in finishme
...
This is more likely to avoid breaking up the message when racing with
other threads.
2015-05-18 10:27:08 -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
Jason Ekstrand
c15f3834e3
vk/gem: Set the gem_mmap.flags parameter to 0 if it exists
2015-05-18 10:27:08 -07:00
Jason Ekstrand
f7b0f922be
vk/gem: Only VK_CLEAR the addr_ptr in gen_mmap
2015-05-18 10:27:07 -07:00
Kristian Høgsberg
ca7e62d421
vk: Add a logger wrapper for the generated entrypoint
2015-05-18 10:27:07 -07:00
Kristian Høgsberg
eb92745b2e
vk/gem: Just return -1 from anv_gem_wait() on error
...
We were returning -errno, unlike all the other gem functions.
2015-05-18 10:27:07 -07:00
Kristian Høgsberg
05754549e8
vk: Fix vkGetOjectInfo return values
...
We weren't properly returning the allocation count.
2015-05-18 10:27:07 -07:00
Kristian Høgsberg
6afb26452b
vk: Implement fences
...
This basic implementation uses a throw-away bo for synchronization.
2015-05-18 10:27:07 -07:00
Kristian Høgsberg
e26a7ffbd9
vk/meta: Use anv_* internal entrypoints
2015-05-18 10:27:07 -07:00
Kristian Høgsberg
b7fac7a7d1
vk: Implement allocation count query
2015-05-18 10:27:07 -07:00