summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* radeonsi: avoid redundant SET_PREDICATION packet with QBO workaroundNicolai Hähnle2017-08-021-4/+9
| | | | | | | | The QBO workaround compute grid launch emits the render condition atom when dirty, so install the render condition in the context only after launching the compute grid. This avoids a redundant SET_PREDICATION. Reviewed-by: Marek Olšák <[email protected]>
* radeonsi: fix streamout overflow predication on VI+Nicolai Hähnle2017-08-023-18/+75
| | | | | | | | | | There is a firmware regression that causes failures. Work around it by using the compute shader for query_buffer_objects to summarize the query results. v2: rename to PREDICATION_OP_BOOL64 (consistent with sid.h) Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: implement qbo for SO_OVERFLOW_PREDICATENicolai Hähnle2017-08-021-7/+37
| | | | | | v2: use R600_MAX_STREAMS instead of 4 (Marek) Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: implement basic parts of PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATENicolai Hähnle2017-08-021-25/+73
| | | | | | v2: use R600_MAX_STREAMS instead of 4 (Marek) Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: fix render predication by SO overflow predicateNicolai Hähnle2017-08-021-7/+6
| | | | | | | | | | The predication bits are "visible or no overflow" and "not visible or overflow", so we need to invert the check relative to the GL and Gallium interface semantics. Also, predication by the other streamout-related queries is not allowed. Reviewed-by: Marek Olšák <[email protected]>
* gallium/radeon: fix ARB_query_buffer_object conversion to booleanNicolai Hähnle2017-08-021-1/+2
| | | | | | | | | The issue here is that the immediate is treated as a 64-bit value, and fetching it does not work reliably with swizzles that are different from xy and zw. Cc: [email protected] Reviewed-by: Marek Olšák <[email protected]>
* st/mesa: implement ARB_transform_feedback_overflow_queryNicolai Hähnle2017-08-022-1/+4
| | | | | | v2: update for new cap name Reviewed-by: Marek Olšák <[email protected]>
* ddebug: handle get_query_result_resource as a GPU callNicolai Hähnle2017-08-023-32/+92
| | | | Reviewed-by: Marek Olšák <[email protected]>
* gallium/util: add util_{str,dump}_query_value_typeNicolai Hähnle2017-08-022-0/+31
| | | | Reviewed-by: Marek Olšák <[email protected]>
* gallium: add util_dump_query_type and use it in ddebugNicolai Hähnle2017-08-023-11/+13
| | | | Reviewed-by: Marek Olšák <[email protected]>
* gallium: rename util_dump_* to util_str_* for enum-to-string conversionNicolai Hähnle2017-08-027-103/+99
| | | | | | | This is mostly mechanical search-and-replace, plus touching up the macros in u_dump_defines.c manually a bit. Reviewed-by: Marek Olšák <[email protected]>
* gallium: add PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE and corresponding capNicolai Hähnle2017-08-0221-2/+36
| | | | | | | | v2: rename cap to PIPE_CAP_QUERY_SO_OVERFLOW and be a bit more explicit in the documentation Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* android: export intermediates from libmesa_utilTapani Pälli2017-08-022-0/+5
| | | | | | | | | | | | | | Fixes following build issues: In file included from vendor/intel/external/android_ia/mesa/src/mesa/drivers/dri/common/dri_util.c:45: vendor/intel/external/android_ia/mesa/src/util/xmlpool.h:103:10: fatal error: 'xmlpool/options.h' file not found ... In file included from vendor/intel/external/android_ia/mesa/src/mesa/drivers/dri/i965/intel_screen.c:44: vendor/intel/external/android_ia/mesa/src/util/xmlpool.h:103:10: fatal error: 'xmlpool/options.h' file not found Fixes: 601093f9 (xmlconfig: move into src/util) Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Chih-Wei Huang <[email protected]>
* intel: move gen_decoder.* back to COMMON_FILESTapani Pälli2017-08-022-5/+3
| | | | | | | | this change reverts commit 4f695731, we want to be able to build with -DDEBUG and gen_decoder on Android. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* android: link libmesa_intel_common with zlib and expatTapani Pälli2017-08-021-0/+5
| | | | | | | | Makes it possible to build Mesa on Android with -DDEBUG with the next patch that reverts 4f695731. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* ac/nir: Add float cast before shadow comparator clamp.Bas Nieuwenhuizen2017-08-021-1/+2
| | | | | | | | LLVM complained about passing an i32 to a float clamp. Signed-off-by: Bas Nieuwenhuizen <[email protected]> Fixes: 0f9e32519bb "ac/nir: clamp shadow texture comparison value on VI" Reviewed-by: Marek Olšák <[email protected]>
* i965: Check result of make_surface() for intel_miptree_create_for_boChris Wilson2017-08-011-0/+2
| | | | | | | Since make_surface() can fail, if the format isn't support by hw or simlar error, we need to check the result before dereferencing it. Reviewed-by: Kenneth Graunke <[email protected]>
* virgl: add BPTC support.Dave Airlie2017-08-021-0/+3
| | | | | | | This just adds the guest checks for BPTC, the host renderer also needs code to support these. Signed-off-by: Dave Airlie <[email protected]>
* mesa/st: fix conditional jump depends on uninitialised valueTimothy Arceri2017-08-021-0/+1
| | | | | | | | | | | | Reported by valgrind at: glsl_to_tgsi_visitor::visit(ir_expression*) (st_glsl_to_tgsi.cpp:1560) When compiling the Deus Ex shaders. Fixes: 28a5e7104 ("st/glsl_to_tgsi: handle precise modifier") Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* radeon/ac: use ds_swizzle for derivs on si/cik.Dave Airlie2017-08-024-39/+44
| | | | | | | | | | | | This looks like it's supported since llvm 3.9 at least, so switch over radeonsi and radv to using it, -pro also uses this. We can now drop creating lds for these operations as the ds_swizzle operation doesn't actually write to lds at all. Acked-by: Marek Olšák <[email protected]> (stable requested due to fixing radv CIK conformance tests) Cc: [email protected] Signed-off-by: Dave Airlie <[email protected]>
* vulkan: Import in the latest 1.0.57 header and XML from KhronosJason Ekstrand2017-08-012-971/+1004
| | | | Acked-by: Dave Airlie <[email protected]>
* ac/nir: fix nir_op_unpack_64_2x32_split_y emissionConnor Abbott2017-08-011-1/+1
| | | | | | This was broken thanks to a typo in b2367cf. Reviewed-by: Nicolai Hähnle <[email protected]>
* ac/nir: fix lsb emissionConnor Abbott2017-08-011-1/+11
| | | | | | | | | | | This makes it match radeonsi. The LLVM backend itself will emit the correct instruction, but LLVM might do incorrect optimizations since it thinks the output is undefined when the input is 0, even though it's not supposed to be. We really need a new intrinsic, or for the backend to become smarter and recognize this pattern. Cc: [email protected] Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* nir: fix algebraic optimizationsConnor Abbott2017-08-011-2/+2
| | | | | | | | The optimizations are only valid for 32-bit integers. They were mistakenly firing for 64-bit integers as well. Cc: [email protected] Reviewed-by: Matt Turner <[email protected]>
* anv: Autogenerate extension query and lookupJason Ekstrand2017-08-016-154/+142
| | | | | | | | | | | | | | | | | | | | | | | As time goes on, extension advertising is going to get more complex. Today, we either implement an extension or we don't. However, in the future, whether or not we advertise an extension will depend on kernel or hardware features. This commit introduces a python codegen framework that generates the anv_EnumerateFooExtensionProperties functions as well as a pair of anv_foo_extension_supported functions for querying for the support of a given extension string. Each extension has an "enable" predicate that is any valid C expression. For device extensions, the physical device is available as "device" so the expression could be something such as "device->has_kernel_feature". For instance extensions, the only option is VK_USE_PLATFORM defines. This mechanism also means that we have a single one-line-per-entry table for all extension declarations instead of the two tables we had in anv_device.c and the one we had in anv_entrypoints_gen.py. The Python code is smart and uses the XML to determine whether an extension is an instance extension or device extension. Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* anv: Add a new centralized extensions fileJason Ekstrand2017-08-013-26/+72
| | | | | | | | This will allow us to keep everything in one place when it comes to declaring what extensions are supported. Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]>
* egl/drm: Fix misused x and y offsets in swrast_get_image()Gwan-gyeong Mun2017-08-011-4/+19
| | | | | | | | | | | | | It fixes misused x and y variables on the calculation of the memory copy regions. Cc: Giovanni Campagna <[email protected]> Fixes: 8430af5ebe1ee8119e14 "Add support for swrast to the DRM EGL platform" Signed-off-by: Mun Gwan-gyeong <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]> [Eric: use gbm_bo_get_bpp() instead of local function, split clamp patch] Signed-off-by: Eric Engestrom <[email protected]>
* egl/drm: Fix misused x and y offsets in swrast_put_image2()Gwan-gyeong Mun2017-08-011-2/+17
| | | | | | | | | | | | | It fixes misused x and y variables on the calculation of the memory copy regions. Cc: Giovanni Campagna <[email protected]> Fixes: 8430af5ebe1ee8119e14 "Add support for swrast to the DRM EGL platform" Signed-off-by: Mun Gwan-gyeong <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]> [Eric: use gbm_bo_get_bpp() instead of local function, split clamp patch] Signed-off-by: Eric Engestrom <[email protected]>
* gbm: add gbm_bo_get_bpp()Eric Engestrom2017-08-013-0/+70
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* gles: Restore some lost typedefsScott D Phillips2017-08-012-4/+14
| | | | | | | | | | | | | GLES/gl.h has historically provided some typedefs that are not used in the API itself. Restore these typedefs that were lost to avoid breaking applications. These seem to be the only typedefs removed in the update. Fixes: 7fd0817 "Update Khronos-supplied headers" [Eric: added a big warning to revert this patch when pulling the updated header] Signed-off-by: Eric Engestrom <[email protected]>
* egl: remove unnecessary empty array elementEric Engestrom2017-08-011-3/+2
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: split enums to make use of -WswitchEric Engestrom2017-08-011-10/+8
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: use designated initaliser for _eglGlobalEric Engestrom2017-08-011-9/+9
| | | | | | | | Turn comments into actual code, that the compiler can check for us :) (Speaking of, one of the comments had a typo. Challenge: find it) Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: make platform's SwapInterval() optionalEric Engestrom2017-08-012-12/+1
| | | | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
* loader: remove clamp_swap_interval()Eric Engestrom2017-08-014-23/+0
| | | | | | | | | | As of last commit, no invalid swap interval can be stored, so there's no need to sanitize the values when reading them anymore. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
* egl: deduplicate swap interval clamping logicEric Engestrom2017-08-014-40/+14
| | | | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
* glsl: xfb_stride applies to buffers, not block membersJuan A. Suarez Romero2017-08-011-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we have an interface block like: layout (xfb_buffer = 0, xfb_offset = 0) out Block { vec4 var1; layout (xfb_stride = 48) vec4 var2; vec4 var3; }; According to ARB_enhanced_layouts spec: "The *xfb_stride* qualifier specifies how many bytes are consumed by each captured vertex. It applies to the transform feedback buffer for that declaration, whether it is inherited or explicitly declared. It can be applied to variables, blocks, block members, or just the qualifier out. [ ...] While *xfb_stride* can be declared multiple times for the same buffer, it is a compile-time or link-time error to have different values specified for the stride for the same buffer." This means xfb_stride actually applies to the buffer, and not to the individual components. In the above example, it means that var2 consumes 16 bytes, and var3 is at offset 32. This has been confirmed also by John Kessenich, the main contact for the ARB_enhanced_layouts specs, and also because this commit fixes: GL45.enhanced_layouts.xfb_block_member_stride This commit is in practice a revert of 598790e8564 (glsl: apply xfb_stride to implicit offsets for ifc block members). Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* build: Convert git_sha1_gen script to Python (part2).Jose Fonseca2017-08-012-2/+2
| | | | | | Things pointed out by Emil. Reviewed-by: Emil Velikov <[email protected]>
* st/dri: don't set PIPE_BIND_SHARED for privately-allocated renderbuffersMarek Olšák2017-08-011-2/+3
| | | | | | which are MSAA and depth/stencil buffers. Reviewed-by: Eric Anholt <[email protected]>
* radeonsi: don't print AMD twice in the renderer string with the marketing nameMarek Olšák2017-08-011-1/+2
| | | | Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: print CE IBs into ddebug reportsMarek Olšák2017-08-017-10/+41
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: fix printing vertex buffer descriptors into ddebug reportsMarek Olšák2017-08-012-0/+8
| | | | | Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: don't flush sL1 conditionally in WAIT_ON_CE_COUNTERMarek Olšák2017-08-011-3/+3
| | | | | | | | I don't know the condition for the flush, but we better turn this off. The sL1 flush is used when CE dumps stuff into a ring buffer and the ring buffer wraps. Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: set up HTILE in descriptors only when level 0 is accessibleMarek Olšák2017-08-011-1/+1
| | | | | | Compression isn't enabled with non-zero levels. Reviewed-by: Nicolai Hähnle <[email protected]>
* radeonsi: fix various CLEAR_STATE issuesMarek Olšák2017-08-011-0/+22
| | | | | | | | | Fixes: 064550238ef0 ("radeonsi: use CLEAR_STATE to initialize some registers") Bugzilla: https://bugs.freedesktop.org/101969 Tested-by: Michel Dänzer <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* build: Convert git_sha1_gen script to Python.Jose Fonseca2017-08-016-16/+25
| | | | | | | | | Python is the scripting language we've been using for scripts that need to run across all supported platforms. Shell is *not* a portable language for scripts. Reviewed-by: Eric Engestrom <[email protected]>
* Fix SCons buildNicolai Hähnle2017-08-011-1/+1
| | | | | | Fixes: 601093f95ddf ("xmlconfig: move into src/util") Tested-by: Eric Engestrom <[email protected]> Tested-by: Roland Scheidegger <[email protected]>
* mesa: fix bad cast conversions in viewport()Samuel Pitoiset2017-08-011-3/+4
| | | | | | | | Fixes: ddc32537d6 ("mesa: clamp viewport values only once when using glViewport()") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101981 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101989 Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* i965/drm: Inline brw_bo_references.Kenneth Graunke2017-07-312-7/+6
| | | | | | | | | | It's a single atomic add, so it makes sense to inline it. Improves performance in Piglit's drawoverhead microbenchmark's "DrawArrays ( 1 VBO, 0 UBO, 0 ) w/ no state change" subtest by 0.400922% +/- 0.310389% (n=350) on my i7-7700HQ. Reviewed-by: Jason Ekstrand <[email protected]>
* Revert "st_glsl_to_tgsi: rewrite rename registers to use array fully."Dave Airlie2017-08-011-26/+29
| | | | | | | | | | | | | | This reverts commit 3008161d28e38336ba39aba4769a2deaf9732f55, which caused a regression for VMWare. The initial code had some recursion in it, that I removed by accident trying to add back the recursion broke lots of things, take the high road and revert for now. Fixes: 3008161d (st_glsl_to_tgsi: rewrite rename registers to use array fully.) Reviewed-by: Brian Paul <[email protected]> Tested-by: Brian Paul <[email protected]> Signed-off-by: Dave Airlie <[email protected]>