summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* i965/vec4: Allow constant propagation into dot product.Matt Turner2014-04-051-0/+4
| | | | | | | total instructions in shared programs: 1667088 -> 1667055 (-0.00%) instructions in affected programs: 3362 -> 3329 (-0.98%) Reviewed-by: Eric Anholt <[email protected]>
* glsl: Optimize (x + y cmp 0) into (x cmp -y).Matt Turner2014-04-051-0/+22
| | | | | | | | Cuts a small handful of instructions in Serious Sam 3: instructions in affected programs: 4692 -> 4666 (-0.55%) Reviewed-by: Ian Romanick <[email protected]>
* i965/fs: Split out can_coalesce_vars() function.Matt Turner2014-04-051-44/+47
| | | | Reviewed-by: Anuj Phogat <[email protected]>
* i965/fs: Split out is_coalesce_candidate() function.Matt Turner2014-04-051-14/+23
| | | | Reviewed-by: Anuj Phogat <[email protected]>
* i965/fs: Split fs_visitor::register_coalesce() into its own file.Matt Turner2014-04-053-181/+209
| | | | | | | The function has gotten large, and brw_fs.cpp is the largest source file in the driver. Reviewed-by: Anuj Phogat <[email protected]>
* i965/fs: Mark appropriate fs_inst members as const.Matt Turner2014-04-052-15/+15
| | | | Reviewed-by: Anuj Phogat <[email protected]>
* i965: Mark is_tex() and friends as const.Matt Turner2014-04-052-10/+10
| | | | Reviewed-by: Anuj Phogat <[email protected]>
* i965/fs: Don't propagate saturation modifiers if there are source modifiers.Matt Turner2014-04-051-0/+2
| | | | | | | | | | | | | | | | | Which would lead to translating mad vgrf9:F, vgrf3:F, u0:F, vgrf6:F mov.sat vgrf7:F, -vgrf9:F into mad.sat vgrf9:F, vgrf3:F, u0:F, vgrf6:F mov vgrf7:F, -vgrf9:F Fixes some lighting effects in Dota2. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76749 Reviewed-by: Ian Romanick <[email protected]>
* i965/fs: Don't propagate saturate modifiers into partial writes.Matt Turner2014-04-051-1/+2
| | | | Reviewed-by: Ian Romanick <[email protected]>
* i965/fs: Fix off-by-one in saturate propagation.Matt Turner2014-04-051-1/+1
| | | | | | | | | | | | ip needs to be initialized to start_ip - 1, since the first thing in the main loop is ip++. Otherwise we would incorrectly propagate the saturate from the mov to the mad: mad a, b, c, d mov.sat x, a add y, z, a Reviewed-by: Ian Romanick <[email protected]>
* i965/vec4: Consider sources of non-GRF-dst instructions for dead channels.Matt Turner2014-04-051-12/+8
| | | | | | | | | | | | Previously we'd ignore the sources of instructions with non-GRF destinations when calculating calculating the dead channels. This would lead to us incorrectly removing the first instruction in this sequence: mov vgrf11, ... cmp.ne.f0 null, vgrf11, 1.0 mov vgrf11, ... Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76616
* i965/fs: Name temporary ralloc contexts something other than mem_ctx.Matt Turner2014-04-052-10/+10
| | | | | | | | | Or else poor programmers might mistakenly use the temporary mem_ctx, instead of the fs_visitor's mem_ctx and wonder why their code is crashing. Also remove the parenting. These contexts are local to the optimization passes they're in and are freed at the end.
* i965/fs: Recalculate live intervals in calculate_register_pressure().Matt Turner2014-04-051-0/+1
| | | | | | | | Otherwise calling dump_instructions() after declaring a new fs_reg would segfault when calculate_register_pressure()'s loop over reg walked off the end of the virtual_grf_start[] array that calculate_live_intervals() would have reallocated for you, if it had known there was a new register.
* egl/dri2: use drm macros to construct device nameJonathan Gray2014-04-051-1/+6
| | | | | | | | | | | | | | Don't hardcode /dev/dri/card0 but instead use the drm macros which allows the correct /dev/drm0 device to be opened on OpenBSD. v2: use snprintf and fallback to /dev/dri/card0 v3: check for snprintf truncation Signed-off-by: Jonathan Gray <[email protected]> Cc: "10.1" <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* egl/dri2: don't require libudev to build drm/wayland platformsJonathan Gray2014-04-051-2/+0
| | | | | | | | | | | | After the loader changes libudev is no longer required to build gbm or the egl drm/wayland platforms. Remove a libudev ifdef which allows the the drm egl driver to be loaded on OpenBSD. Signed-off-by: Jonathan Gray <[email protected]> Cc: "10.1" <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* automake: don't enable -Wl,--no-undefined on OpenBSDJonathan Gray2014-04-0518-20/+20
| | | | | | | | | | | | | | | | OpenBSD does not have DT_NEEDED entries for libc by design, over concerns how the symbols would be referenced after changing the major version of the library. So avoid -no-undefined checks on OpenBSD as they will fail. v2: don't include the -no-undefined libtool option in the variable and change -Wl,--no-undefined references in Automake.inc as well. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76856 Signed-off-by: Jonathan Gray <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* targets/dri: move common libraries to GALLIUM_DRI_LIB_DEPSEmil Velikov2014-04-0510-18/+2
| | | | Signed-off-by: Emil Velikov <[email protected]>
* targets/omx: use GALLIUM_COMMON_LIB_DEPSEmil Velikov2014-04-051-2/+2
| | | | | | | | The targets do not require expat or selinux. Use GALLIUM_COMMON_LIB_DEPS which provides the core requirements for each gallium target. Cc: Christian König <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* targets/xvmc: use GALLIUM_COMMON_LIB_DEPSEmil Velikov2014-04-053-3/+2
| | | | | | | | The targets do not require expat or selinux. Use GALLIUM_COMMON_LIB_DEPS which provides the core requirements for each gallium target. Cc: Christian König <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* r600/omx: drop -lstdc++ hackEmil Velikov2014-04-051-2/+1
| | | | | | | | | The build system will use g++ to link the static library due to the dummy.cpp source(s). Thus one does not need the explicit link against stdc++. Cc: Christian König <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* drivers/nouveau: mention dummy.cpp to use g++ linkerEmil Velikov2014-04-051-1/+1
| | | | | | | | | | The build system does not know that the static library is C++. Mention the cpp file to trigger generation of the proper variable and drop the hacky stdc++ linking. Cc: Ilia Mirkin <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* drivers/nouveau: use GALLIUM_COMMON_LIB_DEPSEmil Velikov2014-04-051-2/+1
| | | | | | Cc: Ilia Mirkin <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* drivers/r300: use GALLIUM_COMMON_LIB_DEPSEmil Velikov2014-04-051-1/+1
| | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76848 Tested-by: Vinson Lee <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* automake: introduce GALLIUM_COMMON_LIB_DEPSEmil Velikov2014-04-057-35/+15
| | | | | | | | | Rather than copying the core four dependencies all over gallium, introduce the above variable to avoid all the duplication. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76848 Tested-by: Vinson Lee <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* automake: move GALLIUM_DRI_LIB_DEPS to Automake.incEmil Velikov2014-04-051-0/+9
| | | | | | | | | | | | | | | With recent commit we started de-duplicating all of the compiler/ linker flags moving their handling inside Automake.inc. This did not take into consideration that the above variable was set at configure time, leading to issues on certain build combinations. Move the variable to where it's used/handled thus cleaning up configure.ac. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76848 Tested-by: Vinson Lee <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* megadriver_stub.c: don't use _GNU_SOURCE to gate the compat codeJonathan Gray2014-04-051-2/+2
| | | | | | | | | _GNU_SOURCE is only set/required for linux*|*-gnu*|gnu*) and as the functionality is available on other systems check for RTLD_DEFAULT instead. Signed-off-by: Jonathan Gray <[email protected]> Cc: "10.1" <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* loader: don't limit the non-udev path to only androidJonathan Gray2014-04-051-1/+1
| | | | | | | | | | | | | Platforms that lack libudev (OpenBSD and possibly others) need this change in order to load the correct dri driver. Under linux we unconditionally require libudev, thus this code will never get build. v2: Add commit message (Emil Velikov) Signed-off-by: Jonathan Gray <[email protected]> Cc: "10.1" <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* loader: use 0 instead of FALSE which isn't definedJonathan Gray2014-04-051-2/+2
| | | | | | Signed-off-by: Jonathan Gray <[email protected]> Cc: "10.1" <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* clover: Document that the *obj*() helpers already take care of object ↵Francisco Jerez2014-04-051-4/+6
| | | | validation.
* i965: Mark SNB GT1 as a GT1.Matt Turner2014-04-041-1/+1
| | | | | | | brw->gt only seems to be used on gen >= 7, so this shouldn't have any effect. Reviewed-by: Ian Romanick <[email protected]>
* gallium/u_blitter: implement scaled blitting in the Z directionMarek Olšák2014-04-041-9/+31
| | | | So that pipe->blit can be used for 3D mipmap generation.
* gallium/u_blitter: don't adjust cubemap coordinates by a small numberMarek Olšák2014-04-041-1/+1
| | | | | It may cause issues with mipmap generation. I think it was used to make some piglit tests pass on r300g.
* Revert "radeon: just don't map VRAM buffers at all"Leo Liu2014-04-041-2/+2
| | | | | | | | | This reverts commit 96e8b916a7a39a9ba58e92d1ad77b5501de63ac7. In the case of VCE encoding with raw YUV file, CPU load directly to VRAM is faster than combination of CPU writing to GTT and then blit to VRAM with GPU. Reviewed-by: Christian König <[email protected]>
* radeon/vce: cleanup cpb handlingLeo Liu2014-04-043-11/+38
| | | | | | | v2: fix whitespace errors, minor coding style changes Signed-off-by: Leo Liu <[email protected]> Signed-off-by: Christian König <[email protected]>
* st/mesa: improve sampler view handlingChristian König2014-04-048-56/+140
| | | | | | | | | | | Keep a dynamically increasing array of all the views created for a texture instead of just the last one. v2: add comments, fix array size calculation, release only the first sampler view found Signed-off-by: Christian König <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* st/xa: Fix advertized version number and try to avoid future discrepanciesThomas Hellstrom2014-04-041-3/+3
| | | | | | | | | | The xa version number had to be set in two places. In configure.ac and in xa_tracker.h. Furthermore, xa_tracker.h is an installed header so we can't use mesa internal defines. So therefore, at configure time, modify the xa_tracker.h header to use the version given by configure.ac Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Rob Clark <[email protected]>
* glapi: Fix make checkIan Romanick2014-04-031-0/+1
| | | | | | | | | | | | /me puts a paper bag on his head and sits in the corner. This was supposed to be included in 5a68f731, which added glPointSizePointerOES back to the list of functions exposed by libGLESv1_CM. It looks like it was an uncommitted change in my tree when I sent the patch out. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* llvmpipe: remove no-op checks in sampler, sampler_view functionsBrian Paul2014-04-031-14/+0
| | | | | Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* softpipe: remove no-op checks in sampler, sampler_view functionsBrian Paul2014-04-031-14/+0
| | | | | Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* svga: remove no-op checks in sampler, sampler_view functionsBrian Paul2014-04-031-15/+0
| | | | | | | | We are checking for no-ops in the CSO module for both of these items so there's no reason to do it in the driver. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* cso: check for no sampler view changes in cso_set_sampler_views()Brian Paul2014-04-031-3/+8
| | | | | | | | | As we do for sampler states in single_sampler_done() and many other CSO functions. Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* st/wgl: Remove wgl*Gallium*MESA().José Fonseca2014-04-034-103/+0
| | | | | | | These were only used by the Python state tracker, which was removed, hence they have no practical use. Reviewed-by: Brian Paul <[email protected]>
* glapi: Fix scons buildIan Romanick2014-04-031-1/+1
| | | | | | | | | Put the -c in the correct place (and match Makefile.am). Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76960 Tested-by: Vinson Lee <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* glx: Do not advertise buffer_age on dri2Adel Gadllah2014-04-021-1/+1
| | | | | | | | | | | | | Previously GLX_EXT_buffer_age has always been advertised as supported because both client_glx_support and client_glx_only where set. So it did not matter that direct_support is only set when running dri3 and we ended up always advertising it. Fix that by not setting client_glx_only for buffer_age in known_glx_extensions. Signed-off-by: Adel Gadllah <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* cso: fix sampler view count in cso_set_sampler_views()Brian Paul2014-04-021-3/+4
| | | | | | | | | | | | | | We want to call pipe->set_sampler_views() with count being the maximum of the old number of sampler views and the new number. This makes sure we null-out any old sampler views. We already do the same thing for sampler states in single_sampler_done(). Fixes some assertions seen in the VMware driver with XA tracker. Cc: "10.0" "10.1" <[email protected]> Reviewed-by: Thomas Hellstrom <[email protected]> Tested-by: Thomas Hellstrom <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* glapi: Add static dispatch for glPointSizePointerOESIan Romanick2014-04-021-1/+1
| | | | | | | | | | | The OpenGL ES 1.1 conformance tests expect this function to be statically available form libGLESv1_CM.so. The comment "required for es1.1" in the XML file should have been a clue. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76926 Reviewed-by: Matt Turner <[email protected]> Tested-by: Lu Hua <[email protected]>
* Revert "Revert "glapi/es1: Don't mark core functions as static_dispatch=false""Ian Romanick2014-04-021-86/+43
| | | | | | | | | | This reverts commit 526e49290cd2d83fb931708a786c27647972a00c. The original build problem should be fixed by the previous commit. Signed-off-by: Ian Romanick <[email protected]> Tested-by: Brian Paul <[email protected]> Tested-by: Lu Hua <[email protected]>
* glapi: Enable ES compatibility modeIan Romanick2014-04-022-2/+2
| | | | | | | | | | | | | | | | | | | | | | | Ages ago Chia-I added an ES compatibility flag to several of the various generator scripts. The intention was to bridge differences between ES and desktop in Mesa builds without ES. It doesn't appear that it has ever been used. Recent changes to static_dispatch status of several ES1 functions caused problems in desktop-only, non-shared-glapi builds. Enabling the ES compatibility mode appears to fix these build problems. This is kind of a duct tape solution to this problem. As I mentioned in the cover letter for the series that triggered the build problem, I would like to make some major changes to the generator architecture and the XML. The whole point of the proposed architecture changes is to better handle the differences between desktop GL and ES. I think duct tape is okay for now. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76869 Tested-by: Brian Paul <[email protected]> Tested-by: Lu Hua <[email protected]> Cc: Vinson Lee <[email protected]> Cc: Chia-I Wu <[email protected]>
* glapi: Fix build break in 'make check' on non-shared-glapi buildsIan Romanick2014-04-021-4/+4
| | | | | | | | | | | | | Commit fb78fa58 made the GL_ARB_debug_output functions aliases of the GL_KHR_debug output functions. As a result, the function names in struct _glapi_table also changed. The table in check_table.cpp used the ARB names. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Timothy Arceri <[email protected]> Tested-by: Brian Paul <[email protected]> Tested-by: Lu Hua <[email protected]> Cc: Vinson Lee <[email protected]>
* glapi: Remove support for "short string" modeIan Romanick2014-04-021-36/+7
| | | | | | | | | | | | | | | | | C89 has a fairly short minimum-maximum string length. To support compilers limited by the C89 limits, this script had a mode where it would generate a character array instead of a giant string. These were functionally the same, but the code generated for the character array is HUGE and difficult to read. As far as I can tell, nothing in Mesa uses '-m short' any more. The generated files used to be tracked in revision control, but I think we stopped using '-m short' when we stopped tracking the generated files. Signed-off-by: Ian Romanick <[email protected]> Tested-by: Brian Paul <[email protected]> Tested-by: Lu Hua <[email protected]> Cc: Vinson Lee <[email protected]>