| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| | |
This pulls in nir cloning and some much-needed upstream refactors.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now that nir_lower_tex can do texture swizzle lowering, we can use that
instead of repeating more-or-less the same code in both backends. This
both allows us to share code and means that things like the tg4
work-arounds are somewhat simpler because they don't have to take the
swizzle into account.
Reviewed-by: Connor Abbott <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Connor Abbott <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Connor Abbott <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Connor Abbott <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
nir_ssa_def_rewrite_uses is one of the older helpers in NIR and predated
both of those. Now it can be substantially simplified.
Reviewed-by: Connor Abbott <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, if someone accidentally made an instruction that refers to its
own SSA destination, the validator wouldn't catch it. The reason for this
is that it validated the destination too early and, by the time it got to
the source, the destination SSA value was already added to the set of seen
SSA values so it would assume that it came from some previous instruction.
By moving destination validation to be after source validation, the SSA
value is not in the list of seen values and the validator will catch
self-referential instructions.
Reviewed-by: Connor Abbott <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, we had a rescale_texcoords helper in the FS backend for
handling rescaling of texture coordinates. Now that we can do variants in
NIR, we can use nir_lower_tex to do the rescaling for us. This allows us
to delete the i965-specific code and gives us proper TEXTURE_RECTANGLE and
GL_CLAMP handling in vertex and geometry shaders.
Reviewed-by: Kenneth Graunke <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Kenneth Graunke <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Iago Toral Quiroga <[email protected]>
|
| |
| |
| |
| |
| | |
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This allows us to insert NIR passes between initial NIR compilation and
optimization (link time) and actual backend code-gen. In particular, it
will allow us to do shader variants in NIR and share some of that shader
variant code between backends.
Reviewed-by: Iago Toral Quiroga <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
At the moment, brw_create_nir just calls the three stages in sequence so
there's not much difference. Soon, however, we will want to start doing
variants in NIR at which point the postprocessing step will have to move
from shader create time to codegen time.
Reviewed-by: Iago Toral Quiroga <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes a regression introduced in b1a83b5d1 that caused basically all
shaders to fail to compile on 32-bit platforms.
Reported-by: Mark Janes <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "11.1" <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Fixes build. Otherwise untested.
Trivial.
|
| |
| |
| |
| |
| |
| |
| | |
Tested on a4xx. This is part of the builtins added by ARB_gpu_shader5
and GLSL ES 3.10.
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
The program emit depends on certain fb details. Make sure those get
updated when the fb changes.
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It appears that the hardware wants the integer to be scaled the same way
that the hardware representation is. snorm16 uses one of the float
factors, so this is only relevant for snorm8.
This fixes a number of subcases of
bin/fbo-blending-formats GL_EXT_texture_snorm
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: [email protected]
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This doesn't account for the ldr/hdr distinction... that will probably
have to be exposed via a separate cap. When relevant hardware appears,
this can be worked out.
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was a silly hack that kept growing and growing. Instead, just write
NULLs for those functions. No need to have helpers that just assert(0)
when you call them.
Signed-off-by: Ilia Mirkin <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Looks like the width field's bitmask was off-by-one.
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Ilia Mirkin <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Not too long ago, the dri3 code was living in src/glx, which in itself
was guarded by HAVE_DRI_GLX. As the name suggests we didn't dive into
the folder when dri was disabled, thus we missed that dri3 does not
consider/honour --enable-dri.
Cc: [email protected]
Fixes: 6bd9ba7d074 "loader: Add dri3 helper"
Cc: Pali Rohár <[email protected]>
Reported-by: Pali Rohár <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It seems that due to the conditional autotools is getting confused and
forgetting to add AM_CPPFLAGS when building libloader (when
HAVE_DRICOMMON is not set).
Cc: [email protected]
Fixes: 5a79e0a8e37 "automake: loader: rework the CPPFLAGS"
Reported-by: Pali Rohár <[email protected]>
Tested-by: Pali Rohár <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Whether or not the loader has libdrm support is up-to it. Anyone using
the loader should just include it whenever they depend on it.
Cc: [email protected]
Fixes: 0f39f9cb7ad "pipe-loader: add a dummy 'static' pipe-loader"
Reported-by: Jon TURNEY <[email protected]>
Tested-by: Jon TURNEY <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It looks like the sampler hardware doesn't take into account the
surface format when sampling a cleared color after a fast clear has
been done. So for example if you clear a GL_RED surface to 1,1,1,1
then the sampling instructions will return 1,1,1,1 instead of 1,0,0,1.
This patch makes it override the color that is programmed in the
surface state in order to swizzle for luminance and intensity as well
as overriding the missing components.
Fixes the ext_framebuffer_multisample-fast-clear Piglit test.
v2: Handle luminance and intensity formats
Reviewed-by: Ben Widawsky <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
v2: do the same in tgsi_to_nir (Samuel)
v3: added missing cases after rebase (Iago)
v4: Add a blank space after '#' in one of the comments (Matt)
Reviewed-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This way the caller doesn't have to initialize all 4 channels when they
aren't using them.
v2: Fix signed/unsigned comparison warning (Iago)
Reviewed-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are various restrictions on what the hstride can be that depend on
the Gen, and now that we're using hstride == 2 for packing/unpacking
doubles, we're going to run into these restrictions a lot more often.
Pull them out into a separate function, and move the one restriction we
checked previously into it.
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This can happen when the source of the compare was split by the SIMD
lowering pass. Potentially, we could allow the case where the exec size
of scan_inst is larger, and scan_inst has the right quarter selected,
but doing that seems a little more risky.
v2: Merge the bail condition into the the previous if/break block (Matt)
Reviewed-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Reviewed-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we tried to get/set something that was exactly 64 bits, we would
try to do (1 << 64) - 1 to calculate the mask which doesn't give us all
1's like we want.
v2 (Iago)
- Replace ~0 by ~0ull
- Removed unnecessary parenthesis
v3 (Kristian)
- Avoid the conditional
Reviewed-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Kristian Høgsberg <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
v2:
- Simplify code (Iago)
Reviewed-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is no 96-bit load/store operations, so we have to split it up
into a 32-bit parts, with a split/merge around it.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90348
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "11.0 11.1" <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Regression as of 64710db66461e
We can't use the type returned by get_interface_type() as
the interface type has arrays removed.
Reviewed-by: Emil Velikov <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In case that the buffer has no bind at all, assume it can be a regular
buffer. This can happen on buffers created through the ARB_dsa
interfaces.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "11.0 11.1" <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With ARB_direct_state_access, buffers can be created without any binding
hints at all. We still need to allocate these buffers to VRAM or GART,
as we don't have logic down the line to place them into GPU-mappable
space. Ideally we'd be able to shift these things around based on usage.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92438
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "11.0 11.1" <[email protected]>
|