Commit Graph

90507 Commits

Author SHA1 Message Date
Dave Airlie 93d61e4945 radv: only emit ps_input_cntl is we have any to output
Otherwise we get GPU hangs.

Reported-by: Alex Smith <asmith@feralinteractive.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2017-03-28 20:12:10 +01:00
Adam Jackson f208bdc0d2 glx: Remove #include <GL/glxint.h>
We're not using anything in it, and we don't want to inherit struct
definitions from some other package anyway.

Signed-off-by: Adam Jackson <ajax@redhat.com>
2017-03-28 14:48:12 -04:00
Julien Isorce 7ee91af300 r600g: check NULL return from r600_aligned_buffer_create
Signed-off-by: Julien Isorce <jisorce@oblong.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-28 18:27:55 +01:00
Julien Isorce 699cce3493 st_cb_bitmap: check NULL return from u_upload_alloc
Signed-off-by: Julien Isorce <jisorce@oblong.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-28 18:27:55 +01:00
Julien Isorce 4a5e779b5f si_compute: check NULL return from u_upload_alloc
Signed-off-by: Julien Isorce <jisorce@oblong.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-28 18:27:53 +01:00
Julien Isorce c5fe99eec2 r600g: check NULL return from u_upload_alloc
Like done in si_state_draw.c::si_draw_vbo

u_upload_alloc can fail, i.e. set output param *ptr to NULL, for 2 reasons:
alloc fails or map fails. For both there is already a fprintf/stderr in
radeon_create_bo and radeon_bo_do_map.

In src/gallium/drivers/ it is a common usage to just avoid to crash by doing
a silent check. But defer fprintf where the error comes from, libdrm calls.

Signed-off-by: Julien Isorce <jisorce@oblong.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-28 17:54:15 +01:00
Tim Rowley 749cf3be6e swr: fix llvm-5.0.0 build bustage
Handle rename of llvm AttributeSet to AttributeList in the same
fashion as ac_llvm_helper.cpp.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
2017-03-28 11:46:58 -05:00
Tim Rowley 79d92a72d5 swr: [rasterizer jitter] fix llvm-5.0.0 build bustage
Add CreateAlignmentAssumptionHelper to gen_llvm_ir_macros.py ignore list.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
2017-03-28 11:46:58 -05:00
Chad Versace d1032a047b isl: Drop unused isl_surf_init_info::min_pitch
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2017-03-28 09:44:44 -07:00
Chad Versace 6cbc13d94c intel: Fix requests for exact surface row pitch (v2)
All callers of isl_surf_init() that set 'min_row_pitch' wanted to
request an *exact* row pitch, as evidenced by nearby asserts, but isl
lacked API for doing so. Now that isl has an API for that, update the
code to use it.

v2: Assert that isl_surf_init() succeeds because the callers assume
    it.  [for jekstrand]

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com> (v1)
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com> (v1)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v2)
2017-03-28 09:44:44 -07:00
Chad Versace e9017d58dc isl: Let isl_surf_init's caller set the exact row pitch (v2)
The caller does so by setting the new field
isl_surf_init_info::row_pitch.

v2: Validate the requested row_pitch.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v2)
2017-03-28 09:44:44 -07:00
Chad Versace 23802dafc2 isl: Validate the calculated row pitch (v45)
Validate that isl_surf::row_pitch fits in the below bitfields,
if applicable based on isl_surf::usage.

    RENDER_SURFACE_STATE::SurfacePitch
    RENDER_SURFACE_STATE::AuxiliarySurfacePitch
    3DSTATE_DEPTH_BUFFER::SurfacePitch
    3DSTATE_HIER_DEPTH_BUFFER::SurfacePitch

v2:
  -Add a Makefile dependency on generated header genX_bits.h.
v3:
  - Test ISL_SURF_USAGE_STORAGE_BIT too. [for jekstrand]
  - Drop explicity dependency on generated header. [for emil]
v4:
  - Rebase for new gen_bits_header.py script.
  - Replace gen_10x with gen_device_info*.
v5:
  - Drop FINISHME for validation of GEN9 1D row pitch. [for jekstrand]
  - Reformat bit tests. [for jekstrand]

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v4)
2017-03-28 09:44:44 -07:00
Chad Versace f0eaf38db2 genxml: New generated header genX_bits.h (v6)
genX_bits.h contains the sizes of bitfields in genxml instructions,
structures, and registers. It also defines some functions to query those
sizes.

isl_surf_init() will use the new header to validate that requested
pitches fit in their destination bitfields.

What's currently in genX_bits.h:

  - Each CONTAINER::Field from gen*.xml that has a bitsize has a macro
    in genX_bits.h:

        #define GEN{N}_CONTAINER_Field_bits {bitsize}

  - For each set of macros whose name, after stripping the GEN prefix,
    is the same, genX_bits.h contains a query function:

      static inline uint32_t __attribute__((pure))
      CONTAINER_Field_bits(const struct gen_device_info *devinfo);

v2 (Chad Versace):
  - Parse the XML instead of scraping the generated gen*_pack.h headers.

v3 (Dylan Baker):
  - Port to Mako.

v4 (Jason Ekstrand):
  - Make the _bits functions take a gen_device_info.

v5 (Chad Versace):
  - Fix autotools out-of-tree build.
  - Fix Android build. Tested with git://github.com/android-ia/manifest.
  - Fix macro names. They were all missing the "_bits" suffix.
  - Fix macros names more. Remove all double-underscores.
  - Unindent all generated code. (It was floating in a sea of whitespace).
  - Reformat header to appear human-written not machine-generated.
  - Sort gens from high to low. Newest gens should come first because,
    when we read code, we likely want to read the gen8/9 code and ignore
    the gen4 code. So put the gen4 code at the bottom.
  - Replace 'const' attributes with 'pure', because the functions now
    have a pointer parameter.
  - Add --cpp-guard flag. Used by Android.
  - Kill class FieldCollection. After Jason's rewrite, it was just
    a dict.

v6 (Chad Versace):
  - Replace `key not in d.keys()` with `key not in d`. [for dylan]

Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v5)
Reviewed-by: Dylan Baker <dylan@pnwbakers.com> (v6)
2017-03-28 09:44:44 -07:00
Tim Rowley 3974cfea25 swr: [rasterizer core] Disable inline function expansion
Disable expansion in windows Debug builds.

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:24:44 -05:00
Tim Rowley 1c7224c85f swr: [rasterizer common] Use C++ thread_local keyword
Allows use of thread_local objects with constructors.

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:24:39 -05:00
Tim Rowley aee5276375 swr: [rasterizer core] SIMD16 Frontend WIP
Implement widened clipper and binner interfaces for SIMD16.

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:24:33 -05:00
Tim Rowley aea737e12e swr: [rasterizer core] Don't bind single-threaded contexts
Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:24:27 -05:00
Tim Rowley 4cd0b1bb2c swr: [rasterizer core] Enable SIMD16
Make the AVX512 insert/extract intrinsics KNL-compatible

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:24:21 -05:00
Tim Rowley ec51e8ecfe swr: [rasterizer jitter] Clean up EngineBuilder construction
Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:24:14 -05:00
Tim Rowley 89b83f4b1e swr: [rasterizer codegen] add cmdline to archrast gen files
Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:24:09 -05:00
Tim Rowley 549b9d2e9f swr: [rasterizer core] SIMD16 Frontend WIP
Fix GS and streamout.

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
2017-03-28 11:23:45 -05:00
Tim Rowley fee3fc018b swr: [rasterizer codegen] Refactor codegen
Move common codegen functions into gen_common.py.

v2: change gen_knobs.py to find the template file internally, like
the rest of the gen scripts.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
2017-03-28 11:23:04 -05:00
Juan A. Suarez Romero caa616ccc4 tests/cache_test: allow crossing mount points
When using an overlayfs system (like a Docker container), rmrf_local()
fails because part of the files to be removed are in different mount
points (layouts). And thus cache-test fails.

Letting crossing mount points is not a big problem, specially because
this is just for a test, not to be used in real code.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-28 18:00:39 +02:00
Emil Velikov 0f9a0cb5f5 glcpp/tests/glcpp-test-cr-lf: error out if we cannot find any tests
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov d8096b75aa glcpp/tests/glcpp-test-cr-lf: correctly set/use srcdir/abs_builddir
Otherwise manual invokation of the script from elsewhere than
`dirname $0` will fail.

With these all the artefacts should be created in the correct location,
and thus we can remove the old (and slighly strange) clean-local line.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov cf77cdce83 glcpp/tests: update testname in help string
Rather than hardcoding glcpp/other use `basename "$0"` which expands
appropriatelly.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov 4ea4fbf93a glcpp/tests/glcpp-test: error out if we cannot find any tests
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov 182d48ceb9 glcpp/tests/glcpp-test: print only the test basename
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov addf62946d glcpp/tests/glcpp-test: set srcdir/abs_builddir variables
Current definitions work fine for the manual invokation of the script,
although the whole script does not consider that one can run it OOT.

The latter will be handled with latter patches, although it will be
extensively using the two variables.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov ee8aea3572 glsl/tests/optimization-test: 'echo' only folders which has generators
The current "let's print any folder which exists" is simply confusing.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov 79a95f19e6 glsl/tests/optimization-test: print only the test basedir/name
The relative/absolute path brings little to no benefit in being printed
as testname. Trim it out.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:24 +01:00
Emil Velikov 33cd136fa2 glsl/tests/optimization-test: error if zero tests were executed
We don't want to lie ourselves that 'everything is fine' when no tests
were found/ran.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov 421115a729 glsl/tests/optimization-test: pass glsl_test as argument
Rather than hardcoding the binary location (which ends up wrong in a
number of occasions) in the python script, pass it as argument.

This allows us to remove a couple of dirname/basename workarounds that
aimed to keep this working, and succeeded in the odd occasion.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov 7d2a1394bb glsl/tests/optimization-test: error out if we fail to generate any tests
v2: use -eq over a string comparison (Eric)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov 86a937d264 glsl/tests/optimization-test: correctly manage srcdir/builddir
At the moment we look for generator script(s) in builddir while they
are in srcdir, and we proceed to generate the tests and expected output
in srcdir, which is not allowed.

To untangle:
 - look for the generator script in the correct place
 - generate the files in builddir, by extending create_test_cases.py to
use --outdir

With this in place the test passes `make check' for OOT builds - would
that be as standalone or part of `make distcheck'

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov a7d9f0a361 glsl/tests/optimisation-test: ensure that compare_ir is available
Bail out early if the script is not where we expect it to be.

v2: use -f instead of -e. latter returns true on folder(s)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov 9083c625f5 glsl/tests/optimization-test: correctly set compare_ir
Now that we have srcdir we can use it to correctly manage/point to the
script. Effectively fixing OOT invokation of `make check'.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov 44b6422258 glsl/tests/optimization-test: add fallback srcdir/abs_builddir defines
There is no robust way to detect either one, so simply hope for the best
and warn just in case.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov 05bc5b35a7 glsl/tests/optimisation-test: make sure that $PYTHON2 is set/available
Otherwise we'll fail when invoking the script outside of "make check"

v2: use -ne over a string comparison (Eric)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov bd4be79fc5 glsl/tests/warnings-test: print only the test basename
Spamming the log with the (in some cases extremely long) test location
is of limited use.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:23 +01:00
Emil Velikov 1c58d08bd9 glsl/tests/warnings-test: error if zero tests were executed
We don't want to lie ourselves that 'everything is fine' when no tests
were found/ran.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:22 +01:00
Emil Velikov 493fa69e37 glsl/tests/warnings-test: correctly manage srcdir/builddir
Before this commit, we would effectively fail to run any of the test in
a OOT builds.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:22 +01:00
Emil Velikov 81ccc7a484 glsl/tests/warnings-test: add fallback srcdir/abs_builddir defines
There is no robust way to detect either one, so simply hope for the best
and warn just in case.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:22 +01:00
Emil Velikov 4b366b171d glsl/tests/warnings-test: error out if glsl_compiler is missing
... or non-executable, in particular.

v2: use test -x (Eric)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:22 +01:00
Emil Velikov 1d93fa7be4 glsl: automake: export abs_builddir for the tests
We're going to use them with the next commits to determine where to put
the generated tests and/or built binaries.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:22 +01:00
Emil Velikov 841f0d2c58 glsl/tests: automake: cleanup all artefacts during clean-local
With later commits we'll fix the generators to produce the files in the
correct location. That in itself will cause an issue since the files
will be left dangling and make distcheck will fail.

v2: Use -r only as needed (Eric)

Cc: Matt Turner <mattst88@gmail.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
2017-03-28 15:31:22 +01:00
Nayan Deshmukh 3472be2bfd st/va: remove assert for single slice
we anyway allow for multiple slices

v2: do not remove assert to check for buf->size

Signed-off-by: Nayan Deshmukh <nayan26deshmukh@gmail.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
2017-03-28 12:08:54 +02:00
Nicolai Hähnle 21ba6543be radeonsi: use DMA for clears with unaligned size
Only a small tail needs to be uploaded manually.

This is only partly a performance measure (apps are expected to use
aligned access). Mostly it is preparation for sparse buffers, which the
old code would incorrectly have attempted to map directly.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-28 10:22:14 +02:00
Nicolai Hähnle f0d9af772e radeonsi: CP DMA clear supports unaligned destination addresses
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-28 10:22:12 +02:00
Nicolai Hähnle d9014952f5 radeonsi: remove the early-out for SDMA in si_clear_buffer
This allows the next patches to be simple while still being able
to make use of SDMA even in some unusual cases.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-28 10:22:01 +02:00