summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* r600g: remove assert on draw with count == 0Christoph Bumiller2014-06-021-1/+0
| | | | Signed-off-by: Marek Olšák <[email protected]>
* r600g: HW bug workaround for TGSI_OPCODE_BREAKCChristoph Bumiller2014-06-023-4/+22
| | | | Signed-off-by: Marek Olšák <[email protected]>
* r600g: implement TGSI_OPCODE_BREAKCChristoph Bumiller2014-06-021-1/+24
| | | | Signed-off-by: Marek Olšák <[email protected]>
* r600g: support all channels of TGSI_FILE_ADDRESSChristoph Bumiller2014-06-021-28/+58
| | | | | | | | It's allowed in SM3. v2: fix multi-component tgsi_r600_arl (FLT_TO_INT is trans-only) Signed-off-by: Marek Olšák <[email protected]>
* r600g: check for PIPE_BIND_BLENDABLE in is_format_supportedChristoph Bumiller2014-06-022-0/+18
| | | | | | v2: added !util_format_is_depth_or_stencil(format) Signed-off-by: Marek Olšák <[email protected]>
* r600g: handle PIPE_QUERY_GPU_FINISHEDChristoph Bumiller2014-06-021-0/+9
| | | | Signed-off-by: Marek Olšák <[email protected]>
* i965/fs: Add fs_inst constructor that takes a list of sources.Matt Turner2014-06-012-0/+15
| | | | | | | Also add an emit() function that calls it. Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Add a function to resize fs_inst's sources array.Matt Turner2014-06-012-0/+11
| | | | | Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Clean up fs_inst constructors.Matt Turner2014-06-012-75/+32
| | | | | | | In a fashion suggested by Ken. Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Loop from 0 to inst->sources, not 0 to 3.Matt Turner2014-06-0110-28/+28
| | | | | | Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Store the number of sources an fs_inst has.Matt Turner2014-06-012-11/+13
| | | | | | Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Tapani Pälli <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: ralloc fs_inst's fs_reg sources.Matt Turner2014-06-012-1/+9
| | | | | Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Disable fs_inst assignment operator.Matt Turner2014-06-011-0/+2
| | | | | | | | | The fs_reg src array is going to turn into a pointer and we'd rather not consider the implications of shallow copying fs_insts. Reviewed-by: Topi Pohjolainen <[email protected]> Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Add and use an fs_inst copy constructor.Matt Turner2014-06-012-0/+6
| | | | | | | Will get more complicated when fs_reg src becomes a pointer. Reviewed-by: Chris Forbes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Skip IR annotations with INTEL_DEBUG=noann.Matt Turner2014-06-013-2/+6
| | | | | | | | | Running shader-db with INTEL_DEBUG=noann reduces the runtime from ~90 to ~80 seconds on my machine. It also reduces the disk space consumed by the .out files from 660 MB (676 on disk) to 343 MB (358 on disk). Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Debug the optimization passes by dumping instr to file.Matt Turner2014-06-011-12/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | With INTEL_DEBUG=optimizer, write the output of dump_instructions() to a file each time an optimization pass makes progress. This lets you easily diff successive files to see what an optimization pass did. Example filenames written when running glxgears: fs8-0000-00-start fs8-0000-01-04-opt_copy_propagate fs8-0000-01-06-dead_code_eliminate fs8-0000-01-12-compute_to_mrf fs8-0000-02-06-dead_code_eliminate | | | | | | | `-- optimization pass name | | | | | `-- optimization pass number in the loop | | | `-- optimization loop interation | `-- shader program number Note that with INTEL_DEBUG=optimizer, we disable compact_virtual_grfs, so that we can diff instruction lists across loop interations without the register numbers being changes. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Give dump_instructions() a filename argument.Matt Turner2014-06-015-6/+42
| | | | | | | | This will allow debugging code to dump the IR after an optimization pass makes progress (the next patch). Only let it open and write to a file if the effective user isn't root. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Give dump_instruction() a FILE* argument.Matt Turner2014-06-015-100/+115
| | | | | | | Use function overloading rather than default arguments, since gdb doesn't know about default arguments. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Add envvar to debug the optimization passes.Matt Turner2014-06-012-0/+2
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* llvmpipe: (trivial) drop "unswizzled" from some function namesRoland Scheidegger2014-05-312-28/+30
| | | | | | | This made sense when swizzled storage layout was used for rendering to tiles. But nowadays the name just adds confusion (and makes for long lines). Reviewed-by: Jose Fonseca <[email protected]>
* llvmpipe: fix crash when not all attachments are populated in a fbRoland Scheidegger2014-05-311-3/+9
| | | | | | | | | | | | Framebuffers can have NULL attachments since a while. llvmpipe handled that properly for lp_rast_shade_quads_mask but it seems the change didn't make it to lp_rast_shade_tile. This fixes piglit fbo-drawbuffers-none test (though I need to increase the FB_SIZE from 32 to 256 so the tris cover some tiles fully). https://bugs.freedesktop.org/show_bug.cgi?id=79421 Cc: "10.1 10.2" <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* softpipe: honor the render_condition_enable bit in blits.Roland Scheidegger2014-05-311-0/+3
| | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* llvmpipe: honor the render_condition_enable bit in blits.Roland Scheidegger2014-05-311-0/+3
| | | | | | | This fixes piglit nv_conditional_render-blitframebuffer. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* gallium/docs: improve documentation of render condition wrt blits.Roland Scheidegger2014-05-312-5/+9
| | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* svga: use svga_shader_too_large() in compile_vs()Brian Paul2014-05-311-8/+36
| | | | | | And rework the dummy shader code to match the fragment shader case. Reviewed-by: José Fonseca <[email protected]>
* svga: use svga_shader_too_large() in compile_fs()Brian Paul2014-05-311-3/+1
| | | | Reviewed-by: José Fonseca <[email protected]>
* svga: added svga_shader_too_large() helperBrian Paul2014-05-311-0/+21
| | | | | | | To check if a shader bytcode exceeds the device limit. There's no limit when using GBS. Reviewed-by: José Fonseca <[email protected]>
* darwin: Remove extra kCGLPFAColorSize attribute when requesting an offscreen ↵Jeremy Huddleston Sequoia2014-05-311-2/+0
| | | | | | | | context https://xquartz.macosforge.org/trac/ticket/650 Signed-off-by: Jeremy Huddleston Sequoia <[email protected]>
* util: Do not use __builtin_clrsb with Intel C++ Compiler.Vinson Lee2014-05-301-1/+1
| | | | | | | | | | | This patch fixes this build error with icc 14.0.2. In file included from state_tracker/st_glsl_to_tgsi.cpp(63): ../../src/gallium/auxiliary/util/u_math.h(583): error: identifier "__builtin_clrsb" is undefined return 31 - __builtin_clrsb(i); ^ Signed-off-by: Vinson Lee <[email protected]>
* i915: add a missing NULL pointer checkLubomir Rintel2014-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | mesaVisual can be NULL with configless context since this commit: commit 551d459af421a2eb937e9e16301bb64da4624f89 Author: Neil Roberts <[email protected]> Date: Fri Mar 7 18:05:47 2014 +0000 Add the EGL_MESA_configless_context extension ... Previously the i965 and i915 drivers were explicitly creating a zeroed visual whenever 0 is passed for the EGLConfig. We attempt to dereference the visual in i915 and now we don't create a zeroed-out one one it crashes, breaking at least weston in an i915. There's no point in doing so as it would be zero anyway. v2: Fixed a typo in commit message. Added some tags. Signed-off-by: Lubomir Rintel <[email protected]> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1100967 Cc: "10.2" <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* glapi: Duplicate GLES1 prototypes in glapi_dispatch.cIan Romanick2014-05-301-0/+57
| | | | | | | | | | | | | | | These prototypes are necessary because GLES1 library builds will create dispatch functions for them. We can't directly include GLES/gl.h because it would conflict the previously-included GL/gl.h. Since GLES1 ABI is not expected to every add more functions, the path of least resistance is to just duplicate the prototypes for the functions that aren't already in desktop OpenGL. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79294 Acked-by: Matt Turner <[email protected]> Tested-by: Andreas Boll <[email protected]> Cc: "10.2" <[email protected]>
* i965/vec4: Allow writemasking on math instructions on Gen7+.Matt Turner2014-05-301-2/+2
| | | | | | | | | | The math instruction was Align1-only on Gen6 and we never updated this to let it use Align16 features like writemasking on newer platforms. total instructions in shared programs: 1686120 -> 1685507 (-0.04%) instructions in affected programs: 48593 -> 47980 (-1.26%) Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Fix Line Stipple enable bit in 3DSTATE_SF for Haswell.Pavel Popov2014-05-301-1/+1
| | | | | | Cc: "10.1 10.2" <[email protected]> Reviewed-by: Matt Turner <[email protected]> Signed-off-by: Pavel Popov <[email protected]>
* st/wgl: use _debug_printf() instead of fprintf()Brian Paul2014-05-301-7/+3
| | | | | | | | This should print output both for debug and release builds. Suggested by Jose. Reviewed-by: José Fonseca <[email protected]> Reviewed-by: Charmaine Lee <[email protected]>
* st/wgl: formatting fixes in stw_framebuffer.cBrian Paul2014-05-301-82/+70
| | | | | | And remove some unneeded #includes and INLINE qualifiers. Reviewed-by: Charmaine Lee <[email protected]>
* st/wgl: make stw_lookup_context_locked() an inline functionBrian Paul2014-05-302-15/+9
| | | | Reviewed-by: Charmaine Lee <[email protected]>
* st/wgl: fix implementation of wglCreateContextAttribsARB()Brian Paul2014-05-303-22/+136
| | | | | | | | | | | | | | | | | | | | wglCreateContextAttribsARB() didn't work previously since it returned a context ID that wasn't allocated by OPENGL32.DLL. So if that context ID was later passed to wglMakeCurrent(), etc. it was rejected. Now when wglCreateContextAttribsARB() is called we actually call wglCreateContext() in order to get a valid context ID. Then we replace the context data which was created with new context data which reflects the arguments passed to wglCreateContextAttribsARB(). If there were a DrvCreateContextAttribs() function in the ICD this work-around wouldn't be necessary. Reviewed-by: Charmaine Lee <[email protected]> Conflicts: src/gallium/state_trackers/wgl/stw_ext_extensionsstring.c src/gallium/state_trackers/wgl/stw_getprocaddress.c
* st/wgl: add debug code to check that pixel format initialization workedBrian Paul2014-05-301-3/+9
| | | | | | | If the assertion fails, it means something is really broken. Before, if this happened we reverted to the GDI renderer without any warning. Reviewed-by: Matthew McClure <[email protected]>
* st/wgl: change PFD_SWAP_COPY to PFD_SWAP_EXCHANGE.Brian Paul2014-05-301-1/+1
| | | | | | | | To reflect our actual SwapBuffers implementation. See stw_st_swap_framebuffer_locked(). This fixes various rendering issues with SolidEdge. Reviewed-by: Jose Fonseca <[email protected]>
* docs: Document how to replace Windows built-in OpenGL software rasterizer ↵José Fonseca2014-05-301-12/+40
| | | | | | | | | | | with llvmpipe. Just happened to stumble across this registry key while debugging something else. This technique is much neater than trying to override opengl32.dll. Also a few minors cleanups.
* scons: add common.c as part of glcpp buildTapani Pälli2014-05-301-1/+1
| | | | | | | | to have _mesa_error_no_memory function available Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79440 Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Juha-Pekka Heikkila <[email protected]>
* mesa: Add missing null checks into prog_hash_table.cJuha-Pekka Heikkila2014-05-301-0/+8
| | | | | | | | Check calloc return values in hash_table_insert() and hash_table_replace() Signed-off-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* glcpp: link with tests/common.cTapani Pälli2014-05-301-0/+1
| | | | | | | So that prog_hash_table can use _mesa_error_no_memory function. Signed-off-by: Tapani Pälli <[email protected]> Reviewed-by: Juha-Pekka Heikkila <[email protected]>
* mesa/main: Add missing null check in _mesa_CreatePerfQueryINTEL()Juha-Pekka Heikkila2014-05-301-0/+5
| | | | | Signed-off-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Petri Latvala <[email protected]>
* mesa/drivers: Add extra null check in blitframebuffer_texture()Juha-Pekka Heikkila2014-05-301-0/+3
| | | | | | | | If texObj == NULL here it mean there is already GL_INVALID_VALUE or GL_OUT_OF_MEMORY error set to context. Signed-off-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* glsl: Add null check in loop_analysis.cppJuha-Pekka Heikkila2014-05-301-2/+4
| | | | | | | Check return value from hash_table_find before using it as a pointer Signed-off-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: add missing null check in _mesa_NewHashTable()Juha-Pekka Heikkila2014-05-301-0/+10
| | | | | Signed-off-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* loader: add optional /sys filesystem method for PCI identification.Gary Wong2014-05-292-11/+137
| | | | | | | | | | | | Introduce a simple PCI identification method of looking up the answer the /sys filesystem (available on Linux). Attempted after libudev, but before DRM. Disabled by default (available only when the --enable-sysfs configure option is specified). Signed-off-by: Gary Wong <[email protected]> Acked-by: Emil Velikov <[email protected]>
* loader: allow attempting more than one method of PCI identification.Gary Wong2014-05-291-18/+46
| | | | | | | | | | | loader_get_pci_id_for_fd() and loader_get_device_name_for_fd() now attempt all available strategies to identify the hardware, instead of conditionally compiling in a single test. The existing libudev and DRM approaches have been retained, attempting first libudev (if available) and then DRM (if necessary). Signed-off-by: Gary Wong <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* st/egl: do not link against libloaderEmil Velikov2014-05-291-1/+0
| | | | | | | | | | | | | | | | | Move the link to the final targets, like any other place in mesa/gallium. This allows better visibilty and will prevent us from including the library archive twice. Resolves multiple definition of `loader_get_pci_id_for_fd' multiple definition of `loader_get_pci_id_for_fd' Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79263 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79382 Cc: Chia-I Wu <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Chia-I Wu <[email protected]> Tested-by: Michel Dänzer <[email protected]>