| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
|
|
|
|
|
|
|
|
| |
No need for it not to be const, and lets caller declare it const if
desired.
Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
|
|
|
|
| |
Signed-off-by: Rob Clark <[email protected]>
|
|
|
|
|
|
|
| |
Pointed out by coverity.
v2: nuke line, Jason pointed out the constructor does it.
Signed-off-by: Dave Airlie <[email protected]>
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
nir_variable_mode is currently a bitflag enum, while
nir_print::print_var_decl() assumes is still a numbered list.
Reviewed-by: Jason Ekstrand <[email protected]>
|
|\| |
|
| |
| |
| |
| | |
Reviewed-by: Kenneth Graunke <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
This is used to facilitate the Vulkan binding model where each resource is
described by a (descriptor set, binding, array index) tuple.
Reviewed-by: Rob Clark <[email protected]>
|
| |
| |
| |
| |
| |
| | |
This is needed for supporting the Vulkan binding model
Reviewed-by: Rob Clark <[email protected]>
|
|\| |
|
| |
| |
| |
| |
| | |
Reviewed-by: Kristian Høgsberg <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
|
| |
| |
| |
| |
| | |
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Not supported by MSVC, and completely unnecessary -- inline functions
work just as well.
NIR_SRC_INIT/NIR_DEST_INIT could and probably should be replaced by the
inline functions.
Acked-by: Jason Ekstrand <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
It doesn't seem needed, and is not available on MSVC.
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Not supported by MSVC and consistent through NIR.
[Emil Velikov: rebase]
Signed-off-by: Emil Velikov <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
|
| |
| |
| |
| | |
This is an unneeded diff between the vulkan and master branches
|
| |
| |
| |
| |
| |
| | |
While it does rely on NIR, it's not really part of the NIR core. At the
moment, it still builds as part of libnir but that can be changed later if
desired.
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| | |
The old version of the pass only worked on globals and locals and always
left inputs, outputs, uniforms, etc. alone.
Reviewed-by: Kenneth Graunke <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The algorithm used is different from both the naive suggestion from the
GLSL spec and the one used in GLSL IR today. Unfortunately, the GLSL IR
implementation that we have today doesn't handle denormals (for those that
care) or the case where the float source is +-inf.
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
These are all needed for SPIR-V
Reviewed-by: Rob Clark <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Acked-by: Eric Anholt <[email protected]>
Reviewed-by: Rob Clark <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Acked-by: Eric Anholt <[email protected]>
Reviewed-by: Rob Clark <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are several passes where we need to specify some set of variable
modes that the pass needs top operate on. This lets us easily do that.
Acked-by: Eric Anholt <[email protected]>
Reviewed-by: Rob Clark <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
|
| |
| |
| |
| |
| | |
Reported-by: Mark Janes <[email protected]>
Reviewed-by: Eduardo Lima Mitev <[email protected]>
|
| |
| |
| |
| |
| |
| | |
Trivial.
Signed-off-by: Ian Romanick <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Dolphin uses them a lot. Range tracking would be better in the long term,
but this two lines works fine for now.
Signed-off-by: Markus Wick <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some passes may not refer to options->..., at which point the compiler
will warn about an unused variable. Just cast to void unconditionally
to shut it up.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Eduardo Lima Mitev <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Many shaders contain expression trees of the form:
const_1 * (value * const_2)
Reorganizing these to
(const_1 * const_2) * value
will allow constant folding to combine the constants. Sometimes, these
constants are 2 and 0.5, so we can remove a multiply altogether. Other
times, it can create more immediate constants, which can actually hurt.
Finding a good balance here is tricky. While much more could be done,
this simple patch seems to have a lot of positive benefit while having
a low downside.
shader-db results on Broadwell:
total instructions in shared programs: 8963768 -> 8961369 (-0.03%)
instructions in affected programs: 438318 -> 435919 (-0.55%)
helped: 1502
HURT: 245
total cycles in shared programs: 71527354 -> 71421516 (-0.15%)
cycles in affected programs: 11541788 -> 11435950 (-0.92%)
helped: 3445
HURT: 1224
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Eduardo Lima Mitev <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Rob Clark <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
No longer used as of last commit.
v2: Rebase.
Signed-off-by: Emil Velikov <[email protected]>
Acked-by: Jason Ekstrand <[email protected]> (v1)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
v2: Undo unintended change to the signature of
nir_normalize_cubemap_coords (Iago).
v3: Move to compiler/nir (Iago)
v4: Remove Authors from copyright header (Michael Schellenberger)
v5 (Sam):
- Use nir_channel() and nir_ssa_for_alu_src() helpers (Jason)
- Inline lower_double_pack_instr() code into lower_double_pack_block()
(Jason).
- Initialize nir_builder at lower_double_pack_impl() (Jason).
Signed-off-by: Iago Toral Quiroga <[email protected]>
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
v2 (Sam):
- Use uint64 instead of float64 for sources and destinations. (Connor)
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
v2 (Sam):
- Use uint64 instead of float64 for sources and destinations. (Connor)
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
v2:
- Assert supports_int and don't fallback to nir_fmov (Jason)
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
v2 (Sam):
- Add missing bit_size assignment when ssbo_load destination is a boolean.
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| | |
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
v2: Revert spurious change in nir_opt_cse.c (Iago)
Signed-off-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
v2 (Sam):
- Use proper bitsize value when calling to nir_load_const_instr_create()
(Jason).
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
v2:
- Squash the printing doubles related patches into one patch (Sam).
v3:
- Print using PRIx64 format: long is 32-bit on some 32-bit platforms but long
long is basically always 64-bit (Jason).
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| |
| | |
v2:
- Don't set sized types to the destination of texture related opcodes.
(Jason)
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
v2 (Sam):
- Add assert to detect bitsizes differents than 32 and 64 (Jason).
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| |
| |
| |
| | |
v2 (Sam):
- Use helper to get base type from nir_alu_type.
Reviewed-by: Jason Ekstrand <[email protected]>
|
| |
| |
| |
| | |
Reviewed-by: Jason Ekstrand <[email protected]>
|