| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Prefix all anv_cmd_state dirty bit tokens with ANV_CMD_DIRTY. For
example:
old -> new
ANV_DYNAMIC_VIEWPORT_DIRTY -> ANV_CMD_DIRTY_DYNAMIC_VIEWPORT
ANV_CMD_BUFFER_PIPELINE_DIRTY -> ANV_CMD_DIRTY_PIPELINE
Change type of anv_cmd_state::dirty and ::compute_dirty from uint32_t to
the self-documenting type anv_cmd_dirty_mask_t.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Vulkan spec allows VkGraphicsPipelineCreateInfo::pDepthStencilState
to be NULL when the pipeline's subpass contains no depthstencil
attachment (see spec quote below). anv_pipeline_init_dynamic_state()
required it unconditionally.
This path fixes anv_pipeline_init_dynamic_state() to access
pDepthStencilState only when there is a depthstencil attachment.
From the Vulkan spec (20 Oct 2015, git-aa308cb)
pDepthStencilState [...] may only be NULL if renderPass and subpass
specify a subpass that has no depth/stencil attachment.
|
|
|
|
|
|
|
|
|
| |
The Vulkan spec (20 Oct 2015, git-aa308cb) states that some fields of
VkGraphicsPipelineCreateInfo are required under certain conditions.
Add a new function, anv_pipeline_validate_create_info() that asserts the
requirements hold.
The assertions helped me discover bugs in Crucible and anv_meta.c.
|
|
|
|
|
| |
If a block of code is annotated with anv_validate, then the block runs
only in debug builds.
|
|
|
|
|
|
| |
The Vulkan spec (20 Oct 2015, git-aa308cb) requires that
VkGraphicsPipelineCreateInfo::renderPass be a valid handle. To satisfy
that, define a static dummy render pass used for all meta operations.
|
|
|
|
|
| |
The Vulkan spec (20 Oct 2015, git-aa308cb) requires that
VkGraphicsPipelineCreateInfo::pMultisampleState not be NULL.
|
|
|
|
|
| |
Most of this applies to Iron Lake and prior only. While we're at it, we
get rid of the legacy GL shading model code.
|
|
|
|
|
|
| |
Most of the shader key setup we did was for pre-Sandybridge and the stuff
for SNB+ wasn't in the key setup. That stuff still isn't there but at
least we've left ourselves notes for now.
|
|
|
|
|
| |
This is a Vulkan driver. We don't need legacy clipping stuff and, even if
we did, we don't plan on supporting pre-Sandybridge anyway.
|
|
|
|
|
| |
As of upstream mesa changes, brw_compile_fs does this for us so there's no
need to have the code in the Vulkan driver anymore.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we were trying to handle them later when loading. However, at
that point, you've already lost information and it's harder to handle
certain corner-cases. In particular, if you have a shader that does
gl_PerVertex.gl_Position.x = foo
we have trouble because we see the .x and we don't know that we're in
gl_Position. If we, instead, handle it in OpAccessChain, we have all the
information we need and we can silently re-direct it to the appropreate
variable. This also lets us delete some code which is a nice side-effect.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
NIR considers bcsel to produce and consume unsigned types, leading to
SEL instructions operating on unsigned types when the data is really
floating-point. Previous to this patch, saturate propagation would
happily transform
(+f0) sel g20:UD, g30:UD, g40:UD
mov.sat g50:F, g20:F
into
(+f0) sel.sat g20:UD, g30:UD, g40:UD
mov g50:F, g20:F
But since the meaning of .sat is dependent on the type of the
destination register, this is not valid.
Instead, allow saturate propagation to change the types of dest/source
on instructions that are simply copying data in order to propagate the
saturate modifier.
Fixes bad code gen in 158 programs.
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make them members of fs_inst/vec4_instruction for use elsewhere.
Also fix the fs version to check that dst.type == src[1].type and for
!saturate.
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| | |
Reviewed-By: Eduardo Lima Mitev <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
At this point, the compiler API has been substantially simplified. In the
spirit of Kristian's making a compiler library, this commit makes a single
header file that contains, more-or-less, the entire compiler API.
There's still a bit of cleanup to do particularly in the area of geometry
shaders. However, this gets us much closer to having a separate compiler.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This commit moves the common/modern stuff. Some legacy stuff such as
setting use_alt_mode was left because it needs to know whether or not we're
an ARB program.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This commit removes all dependence on GL state by getting rid of the
brw_context parameter and the GL data structures.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit removes all dependence on GL state by getting rid of the
brw_context parameter and the GL data structures. Unfortunately, we still
have to pass in the gl_shader_program for gen6 because it's needed for
transform feedback.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit removes all dependence on GL state by getting rid of the
brw_context parameter and the GL data structures.
v2 (Jason Ekstrand):
- Patch use_legacy_snorm_formula through as a function argument rather
than trying to go through the shader key.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This commit removes all dependence on GL state by getting rid of the
brw_context parameter and the GL data structures.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This way we can have other stage-specific info without consuming too much
extra space. While we're at it, we make sure that the geometry info is
only set if we're actually a goemetry shader.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
Now that everything goes through NIR, we don't need this to be a void
pointer anymore.
Reviewed-by: Topi Pohjolainen <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Undoes early hacks, and ensures nir/glsl_types.cpp is built once, and
only once.
The root problem is that SCons doesn't know about NIR nor any source
file in the NIR_FILES source list.
Tested with libgl-gdi and libgl-xlib scons targets.
Reviewed-by: Brian Paul <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Spotted by Roland. Luckily, this code should never really be hit
since the const buffer size and offset should already be multiples
of 16. I could probably add more assertions to that effect, but
let's just fix the arithmetic for now.
Reviewed-by: Roland Scheidegger <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
Fixes a regression added by bb5aeb854915ba67abc56257f830d002c956439e.
Signed-off-by: Samuel Iglesias Gonsalvez <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Christian König <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
vlVaCreateImage
Cc: "11.0" <[email protected]>
Reviewed-by: Christian König <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
The latter holds both UBOs and SSBOs, but here we only want UBOs.
Reviewed-by: Kristian Høgsberg <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
The latter holds both UBOs and SSBOs, but here we only want UBOs.
Reviewed-by: Kristian Høgsberg <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the only place in the driver where we use this. Since we now work
with separate index spaces, always use NumUniformBlocks and
NumShaderStorageBlocks instead of NumBufferInterfaceBlocks to be more
consistent with the rest of the code.
Reviewed-by: Kristian Høgsberg <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
|
| |
| |
| |
| |
| | |
Reviewed-by: Kristian Høgsberg <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now that we have separate index spaces for UBOs and SSBOs we do not need
to iterate through BufferInterfaceBlocks any more, we can just take the
UBO count directly from NumUniformBlocks.
Reviewed-by: Kristian Høgsberg <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
|
| |
| |
| |
| |
| | |
When the bit is not set, we can see sampling artifacts on triangle edges when
the mip filter is not GEN6_MIPFILTER_NONE.
|
| |
| |
| |
| | |
This was the intended behavior but it did not work as intended until now.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Move it to ilo_debug.h.
|
| |
| |
| |
| | |
We do not make allocations generally in the core.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It looks like binding a constant buffer on compute overwrites the 3D
state. To avoid that, we already re-bind all the 3D constant buffers
after launching a compute grid but this is not enough.
Binding the constant buffer of input parameters for the compute state at
initialization corrupts the 3D constant buffers, and it's just useless
to bind it because this is not needed until we really launch a grid.
This fixes some piglit regressions related to interpolation tests
introduced in "nvc0: enable compute support by default on Fermi".
Fixes: 00d6186 (nvc0: enable compute support by default on Fermi)
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Ilia Mirkin <[email protected]>
|