<feed xmlns='http://www.w3.org/2005/Atom'>
<title>external_mesa3d/src/intel/vulkan/anv_cmd_buffer.c, branch replicant-6.0</title>
<subtitle>external/mesa3d
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/'/>
<entry>
<title>anv: Handle null in all destructors</title>
<updated>2016-11-24T16:34:40+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-11-11T05:32:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=8dbdbc21910a6d37c381535186f9e728fff8690d'/>
<id>8dbdbc21910a6d37c381535186f9e728fff8690d</id>
<content type='text'>
This fixes a bunch of new CTS tests which look for exactly this.  Even in
the cases where we just call vk_free to free a CPU data structure, we still
handle NULL explicitly.  This way we're less likely to forget to handle
NULL later should we actually do something less trivial.

Cc: "13.0" &lt;mesa-stable@lists.freedesktop.org&gt;
Reviewed-by: Dave Airlie &lt;airlied@redhat.com&gt;
(cherry picked from commit 49f08ad77f51cc344e4bfe60ba9f8d9fccfbd753)
[Emil Velikov: color_rt_surface_state is still around]
Signed-off-by: Emil Velikov &lt;emil.velikov@collabora.com&gt;

Conflicts:
	src/intel/vulkan/anv_image.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a bunch of new CTS tests which look for exactly this.  Even in
the cases where we just call vk_free to free a CPU data structure, we still
handle NULL explicitly.  This way we're less likely to forget to handle
NULL later should we actually do something less trivial.

Cc: "13.0" &lt;mesa-stable@lists.freedesktop.org&gt;
Reviewed-by: Dave Airlie &lt;airlied@redhat.com&gt;
(cherry picked from commit 49f08ad77f51cc344e4bfe60ba9f8d9fccfbd753)
[Emil Velikov: color_rt_surface_state is still around]
Signed-off-by: Emil Velikov &lt;emil.velikov@collabora.com&gt;

Conflicts:
	src/intel/vulkan/anv_image.c
</pre>
</div>
</content>
</entry>
<entry>
<title>anv/pipeline: Put actual pointers in anv_shader_bin</title>
<updated>2016-11-09T13:44:32+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-11-01T23:03:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=e016945bdd739811cde46b640e07627386361343'/>
<id>e016945bdd739811cde46b640e07627386361343</id>
<content type='text'>
While we can simply calculate offsets to get to things such as the
prog_data and the key, it's much more user-friendly if there are just
pointers.  Also, it's a bit more fool-proof.

While we're at it, we rework the pipeline cache API to use the
brw_stage_prog_data type directly.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98012
Reviewed-by: Topi Pohjolainen &lt;topi.pohjolainen@intel.com&gt;
Reviewed-by: Timothy Arceri &lt;timothy.arceri@collabora.com&gt;
Cc: "13.0" &lt;mesa-stable@lists.freedesktop.org&gt;
(cherry picked from commit ff3185e3ba85b3635a1f645e8e951954f4022afe)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While we can simply calculate offsets to get to things such as the
prog_data and the key, it's much more user-friendly if there are just
pointers.  Also, it's a bit more fool-proof.

While we're at it, we rework the pipeline cache API to use the
brw_stage_prog_data type directly.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98012
Reviewed-by: Topi Pohjolainen &lt;topi.pohjolainen@intel.com&gt;
Reviewed-by: Timothy Arceri &lt;timothy.arceri@collabora.com&gt;
Cc: "13.0" &lt;mesa-stable@lists.freedesktop.org&gt;
(cherry picked from commit ff3185e3ba85b3635a1f645e8e951954f4022afe)
</pre>
</div>
</content>
</entry>
<entry>
<title>anv: move to using vk_alloc helpers.</title>
<updated>2016-10-18T23:05:26+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-10-14T03:31:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=1ae6ece9802e77ede97722c0f7cdd0c24e6fbd04'/>
<id>1ae6ece9802e77ede97722c0f7cdd0c24e6fbd04</id>
<content type='text'>
This moves all the alloc/free in anv to the generic helpers.

Acked-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This moves all the alloc/free in anv to the generic helpers.

Acked-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>anv: Get rid of anv_cmd_buffer_emit_state_base_address</title>
<updated>2016-10-18T00:41:35+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-10-17T17:13:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=52904ba85c7e1e3092601e3497bfbc246b00b84a'/>
<id>52904ba85c7e1e3092601e3497bfbc246b00b84a</id>
<content type='text'>
All code that would have once called this can now call the gen-specific
version.  The switching version is no longer needed.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All code that would have once called this can now call the gen-specific
version.  The switching version is no longer needed.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>anv/cmd_buffer: Move descriptor flushing into genX_cmd_buffer.c</title>
<updated>2016-10-18T00:41:35+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-10-17T17:11:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=7998e37774c9589b456d9a951d47db98c16d6202'/>
<id>7998e37774c9589b456d9a951d47db98c16d6202</id>
<content type='text'>
It really should have gone here all along.  We were trying a bit too hard
to make it gen-agnostic just because it didn't have any #if's.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It really should have gone here all along.  We were trying a bit too hard
to make it gen-agnostic just because it didn't have any #if's.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>anv/cmd_buffer: Expose ensure_push_constant_*</title>
<updated>2016-10-18T00:41:35+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-10-17T17:10:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=eddaa237c0d3bf03afe3448a6134ebcb8cc8ad0b'/>
<id>eddaa237c0d3bf03afe3448a6134ebcb8cc8ad0b</id>
<content type='text'>
Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>anv/cmd_buffer: Move Begin/End/Execute to genX_cmd_buffer.c</title>
<updated>2016-10-18T00:41:35+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-10-17T16:28:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=2314c9ed2e39bcf4ac6b206344acb05fec876a41'/>
<id>2314c9ed2e39bcf4ac6b206344acb05fec876a41</id>
<content type='text'>
vkBeginCommandBuffer and vkCmdExecuteCommands both call into the
gen-specific emit_state_base_address function and vkEndCommandBuffer
belongs with begin.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
vkBeginCommandBuffer and vkCmdExecuteCommands both call into the
gen-specific emit_state_base_address function and vkEndCommandBuffer
belongs with begin.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>anv/cmd_buffer: Move state base address re-emit into ExecuteCommands</title>
<updated>2016-10-18T00:41:35+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-10-17T16:14:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=ac0ca066de654fd80a6f18c9c32555d7d91c0335'/>
<id>ac0ca066de654fd80a6f18c9c32555d7d91c0335</id>
<content type='text'>
This has two primary advantages.  First, it means that the batch_chain code
knows less about the actual command buffer contents which is good because
improves separation.  Second, it means that it only gets re-emitted once
after all of the secondaries instead of once after each secondary which is
just wasteful.  It also has the advantage of cleaning the code up a bit.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This has two primary advantages.  First, it means that the batch_chain code
knows less about the actual command buffer contents which is good because
improves separation.  Second, it means that it only gets re-emitted once
after all of the secondaries instead of once after each secondary which is
just wasteful.  It also has the advantage of cleaning the code up a bit.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Anuj Phogat &lt;anuj.phogat@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>anv/cmd_buffer: Don't call set_subpass in a secondary</title>
<updated>2016-10-06T23:52:31+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-10-05T23:51:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=b548fdbed5c16f5c0dfc26f65b0037a85c567735'/>
<id>b548fdbed5c16f5c0dfc26f65b0037a85c567735</id>
<content type='text'>
Initially, we had intended set_subpass to be an interesting function that
did whatever (presumably a lot) setup we needed for a subpass.  In reality,
it just sets a pointer and a dirty bit and then emits depth and stencil
state.  When we call BeginCommandBuffer on a secondary, there's no point in
setting depth and stencil state since it will already be set by the
primary.  Instead, the only thing we need to do at the start of a secondary
is set the subpass pointer and the dirty bit.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Nanley Chery &lt;nanley.g.chery@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Initially, we had intended set_subpass to be an interesting function that
did whatever (presumably a lot) setup we needed for a subpass.  In reality,
it just sets a pointer and a dirty bit and then emits depth and stencil
state.  When we call BeginCommandBuffer on a secondary, there's no point in
setting depth and stencil state since it will already be set by the
primary.  Instead, the only thing we need to do at the start of a secondary
is set the subpass pointer and the dirty bit.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Reviewed-by: Nanley Chery &lt;nanley.g.chery@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>anv: Rework pipeline caching</title>
<updated>2016-08-30T22:08:23+00:00</updated>
<author>
<name>Jason Ekstrand</name>
<email>jason.ekstrand@intel.com</email>
</author>
<published>2016-08-25T08:49:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/external_mesa3d/commit/?id=10f9901bcef7724cb72fb2fe7e3dd8d6660d2f34'/>
<id>10f9901bcef7724cb72fb2fe7e3dd8d6660d2f34</id>
<content type='text'>
The original pipeline cache the Kristian wrote was based on a now-false
premise that the shaders can be stored in the pipeline cache.  The Vulkan
1.0 spec explicitly states that the pipeline cache object is transiant and
you are allowed to delete it after using it to create a pipeline with no
ill effects.  As nice as Kristian's design was, it doesn't jive with the
expectation provided by the Vulkan spec.

The new pipeline cache uses reference-counted anv_shader_bin objects that
are backed by a large state pool.  The cache itself is just a hash table
mapping keys hashes to anv_shader_bin objects.  This has the added
advantage of removing one more hand-rolled hash table from mesa.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Cc: "12.0" &lt;mesa-stable@lists.freedesktop.org&gt;
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97476
Acked-by: Kristian Høgsberg Kristensen &lt;krh@bitplanet.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The original pipeline cache the Kristian wrote was based on a now-false
premise that the shaders can be stored in the pipeline cache.  The Vulkan
1.0 spec explicitly states that the pipeline cache object is transiant and
you are allowed to delete it after using it to create a pipeline with no
ill effects.  As nice as Kristian's design was, it doesn't jive with the
expectation provided by the Vulkan spec.

The new pipeline cache uses reference-counted anv_shader_bin objects that
are backed by a large state pool.  The cache itself is just a hash table
mapping keys hashes to anv_shader_bin objects.  This has the added
advantage of removing one more hand-rolled hash table from mesa.

Signed-off-by: Jason Ekstrand &lt;jason@jlekstrand.net&gt;
Cc: "12.0" &lt;mesa-stable@lists.freedesktop.org&gt;
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97476
Acked-by: Kristian Høgsberg Kristensen &lt;krh@bitplanet.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
