summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* gallium: utility helper functions for stream outputMarek Olšák2011-12-157-7/+66
|
* gallium: interface changes necessary to implement transform feedback (v5)Marek Olšák2011-12-1524-89/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Namely: - EXT_transform_feedback - ARB_transform_feedback2 - ARB_transform_feedback_instanced The old interface was not useful for OpenGL and had to be reworked. This interface was originally designed for OpenGL, but additional changes have been made in order to make st/d3d1x support easier. The most notable change is the stream-out info must be linked with a vertex or geometry shader and cannot be set independently. This is due to limitations of existing hardware (special shader instructions must be used to write into stream-out buffers), and it's also how OpenGL works (stream outputs must be specified prior to linking shaders). Other than that, each stream output buffer has a "view" into it that internally maintains the number of bytes which have been written into it. (one buffer can be bound in several different transform feedback objects in OpenGL, so we must be able to have several views around) The set_stream_output_targets function contains a parameter saying whether new data should be appended or not. Also, the view can optionally be used to provide the vertex count for draw_vbo. Note that the count is supposed to be stored in device memory and the CPU never gets to know its value. OpenGL way | Gallium way ------------------------------------ BeginTF = set_so_targets(append_bitmask = 0) PauseTF = set_so_targets(num_targets = 0) ResumeTF = set_so_targets(append_bitmask = ~0) EndTF = set_so_targets(num_targets = 0) DrawTF = use pipe_draw_info::count_from_stream_output v2: * removed the reset_stream_output_targets function * added a parameter append_bitmask to set_stream_output_targets, each bit specifies whether new data should be appended to each buffer or not. v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2, note that the draw-auto subset is always required (for d3d10), only the pause/resume functionality is limited if the CAP is not advertised v4: * update gallium/docs v5: * compactified struct pipe_stream_output_info, updated dump/trace
* gallium: disable stream output in drivers that support itMarek Olšák2011-12-155-2/+23
| | | | I am going to make interface changes and I don't want to break compilation.
* st/xa: Disable composite solid fill with maskThomas Hellstrom2011-12-151-1/+19
| | | | | | | Xa doesn't support it yet. Trying to do that would cause a segfault. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Jakob Bornecrantz <[email protected]>
* st/xa: Fix format conversion copy alpha channelThomas Hellstrom2011-12-153-3/+13
| | | | | | | | | When doing format conversion copies between a format without an alpha channel and a format with an alpha channel, make sure the destination alpha is set to 1. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Jakob Bornecrantz <[email protected]>
* st/xa: Fix component alpha checkThomas Hellstrom2011-12-151-2/+1
| | | | | | | Component alpha only affects mask pictures. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Jakob Bornecrantz <[email protected]>
* st/egl: fix compiler warningsChia-I Wu2011-12-152-3/+3
| | | | | One is about casting a pointer to integer and the other is about an unused function when HAVE_WAYLAND_BACKEND is not defined.
* st/egl: Implement EGL_NOK_swap_region for x11Fredrik Höglund2011-12-153-20/+51
| | | | | | | | v2: inline x11_drawable_copy_buffers(). Signed-off-by: Fredrik Höglund <[email protected]> [olv: s/inline/INLINE/]
* st/egl: Add support for EGL_NOK_swap_regionFredrik Höglund2011-12-153-3/+46
| | | | | | | | | | | | Backends indicate that they support this extension by returning EGL_TRUE when native_display::get_param() is called with NATIVE_PARAM_PRESENT_REGION and NATIVE_PARAM_PRESERVE_BUFFER. native_present_control is extended to include the region that should be presented. When native_present_control::num_rects is zero, the whole surface is to be presented. Signed-off-by: Fredrik Höglund <[email protected]>
* st/vdpau: fix unwanted output scalingChristian König2011-12-141-7/+12
| | | | | | | | | vlVdpPresentationQueueDisplay shouldn't scale, so use size of destination surface as source rectangle. Based on work of Maarten Lankhorst <[email protected]> Signed-off-by: Christian König <[email protected]>
* st/vdpau: some mixer fixesChristian König2011-12-143-2/+8
| | | | | | | | | Correctly use destination_rect and destination_video_rect in the mixer, and also use a dirty area tracking for output surfaces. Based on work of Maarten Lankhorst <[email protected]> Signed-off-by: Christian König <[email protected]>
* g3dvl/compositor: improve dirty area handlingChristian König2011-12-148-47/+81
| | | | | | | Take viewport and scissors into account and make the dirty area a parameter instead of a member. Signed-off-by: Christian König <[email protected]>
* r300g: take advantage of KEEP_TILING_FLAGS flush flagMarek Olšák2011-12-132-2/+10
| | | | This fixes at least two multi-context-related races.
* nouveau: get rid of winsys objectMarcin Slusarz2011-12-1317-113/+17
| | | | Its only purpose was to destroy itself.
* i915g: Roll back to the previous shader limits.Stéphane Marchesin2011-12-133-6/+2
| | | | Those shader limits seem to be responsible for a piglit hang.
* i915g: Update TODO.Stéphane Marchesin2011-12-131-0/+2
|
* winsys/radeon: add flush option not to rewrite tiling flags in registersMarek Olšák2011-12-133-4/+24
| | | | Not used yet.
* mesa: add const flags to skip MaxVarying and MaxUniform linker checks (v2)Marek Olšák2011-12-132-1/+5
| | | | | | | | | This is only temporary until a better solution is available. v2: print warnings and add gallium CAPs Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* r300g: integer and fixed-point 16.16 textures are not supportedMarek Olšák2011-12-121-0/+11
|
* i915g: fix debug dump on 64 bit systemsMichael Karcher2011-12-111-1/+1
|
* i915g: Fix wrong indices for LINE_LOOP caseFatih Aşıcı2011-12-111-2/+2
|
* vl: Add missing mpeg fields to pipe_mpeg12_picture_descMaarten Lankhorst2011-12-112-0/+6
| | | | Signed-off-by: Maarten Lankhorst <[email protected]>
* g3dvl/xlib: fix build by changing include orderTobias Droste2011-12-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | fixes the following build error since c83fb4d45f2a47042f395271efe6e5489b2c4aee: /usr/include/strings.h:46:13: error: expected declaration specifiers or ‘...’ before numeric constant /usr/include/strings.h:46:13: error: conflicting types for ‘memset’ In file included from ../../../../src/gallium/winsys/g3dvl/xlib/xsp_winsys.c:34:0: ../../../../src/gallium/auxiliary/util/u_inlines.h: In function ‘pipe_buffer_create’: ../../../../src/gallium/auxiliary/util/u_inlines.h:189:4: error: too many arguments to function ‘memset’ /usr/include/strings.h:46:13: note: declared here bzero is defined in X11 as: #define bzero(b,len) memset(b,0,len) including strings.h after the X11 header results in preprocessor replacing 'bzero' in strings.h and generating unbuildable code. Signed-off-by: Tobias Droste <[email protected]>
* gallium: implement ARB_conservative_depthMarek Olšák2011-12-104-1/+31
| | | | This adds a new TGSI property to represent the GLSL layout qualifier in TGSI.
* util: Add strings.h include on unicesJosé Fonseca2011-12-091-0/+4
| | | | | Fixes -Wimplicit-function-declaration for ffs with GCC. Spotted/tested by Kai Wasserbäch.
* llvmpipe: Trim the fragment shader cached based on LLVM IR instruction count.José Fonseca2011-12-086-11/+62
| | | | | | | | | | | | Number of fragment shader variants is not very representative of the memory used by LLVM, neither is number of shader instructions, as often texture sampling constitutes most of the generated code. This change adds an additional trim criteria: least recently used fragment shader variants will be freed until the total number of LLVM IR instruction falls below a specified threshold. Reviewed-by: Brian Paul <[email protected]>
* llvmpipe,draw,gallivm: Ensure we don't walk beyond the end of the shader ↵José Fonseca2011-12-083-5/+18
| | | | | | | | | | | variant list. u_simple_list.h uses a sentinel element, and not a NULL element. So ensure list is not empty when reducing the list of shader variants. Something I noticed while trying to free variants more aggressively. Reviewed-by: Brian Paul <[email protected]>
* st/xa: Update xa_yuv_planar_blit semanticsThomas Hellstrom2011-12-085-12/+16
| | | | | | | | | Change and document the interpretation of the color conversion matrix in order to make the function more versatile and to simplify the generated shader. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Jakob Bornecrantz <[email protected]>
* st/dri: Use depth instead of bpp when communicating formats with the X server v3Thomas Hellstrom2011-12-071-3/+38
| | | | | | | | | Some hardware can't reinterpret the format of hardware buffers and thus the X server needs to know the format when the buffer is created. Signed-off-by: Thomas Hellstrom <[email protected]> Reviewed-by: Michel Daenzer <[email protected]> Reviewed-by: Jakob Bornecrantz <[email protected]>
* nouveau/nvfx: Add more unsupported PIPE_CAP valuesPatrice Mandin2011-12-061-1/+5
| | | | Signed-off-by: Patrice Mandin <[email protected]>
* vega: remove unused varsFabio Pedretti2011-12-061-20/+5
| | | | Signed-off-by: Brian Paul <[email protected]>
* r600g: check shaders presence in r600_draw_vboVadim Girlin2011-12-061-0/+3
| | | | | | | | | | This patch should prevent the crashes when some shaders are absent, see https://bugs.freedesktop.org/show_bug.cgi?id=43341 Note this is a candidate for the stable branch. Signed-off-by: Vadim Girlin <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* r600g: fix error path and use util_slab_freeJerome Glisse2011-12-051-1/+1
| | | | Signed-off-by: Jerome Glisse <[email protected]>
* gallium/radeon: fix indentationJerome Glisse2011-12-054-28/+28
| | | | | | Indentation cleanup, to keep consistency. Signed-off-by: Jerome Glisse <[email protected]>
* util: add casts in fprintf() calls to silence warningsBrian Paul2011-12-031-4/+6
| | | | And wrap to 80 columns.
* nv50/nvc0: fix crash when channel allocation failsMarcin Slusarz2011-12-022-2/+4
|
* i915g: Implement GL_STREAM_* for textures by using untiled textures.Stéphane Marchesin2011-12-011-1/+1
|
* i915g: Add unsupported PIPE_SHADER_CAP_OUTPUT_READ to silence warnings.Stéphane Marchesin2011-12-011-0/+2
|
* gallium: add PIPE_FORMAT_ETC1_RGB8Chia-I Wu2011-12-028-2/+165
| | | | | | | The format is defined by GL_OES_compressed_ETC1_RGB8_texture. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* u_vbuf: Silence uninitialized variable warnings.Vinson Lee2011-12-011-0/+2
| | | | | | | | | | Fixes these GCC warnings. u_vbuf.c: In function ‘u_vbuf_draw_begin’: u_vbuf.c:839:20: warning: ‘max_index’ may be used uninitialized in this function [-Wuninitialized] u_vbuf.c:838:20: warning: ‘min_index’ may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* gallium/failover: Remove the deprecated module.Kai Wasserbäch2011-11-309-1186/+5
| | | | | Signed-off-by: Kai Wasserbäch <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* gallium/cell: Remove the driver.Kai Wasserbäch2011-11-2980-20782/+3
| | | | | | | Complicates Gallium3D development and doesn't seem to have active users. Signed-off-by: Kai Wasserbäch <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* Remove windows kernel support code.José Fonseca2011-11-2911-432/+11
| | | | | | Not actively used. Reviewed-by: Brian Paul <[email protected]>
* gallium/auxiliary: Remove os_stream.José Fonseca2011-11-2912-762/+99
| | | | | | XP kernel mode was the only subsystem lacking stdio FILES. Reviewed-by: Brian Paul <[email protected]>
* st/vega: Fix warnings about dllimport attributes on windows.José Fonseca2011-11-291-0/+1
|
* i965g: Delete this driver.Kai Wasserbäch2011-11-29118-37255/+1
| | | | | | | Never completed, and no plans to do so. Signed-off-by: Kai Wasserbäch <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* r600g: add framebuffer support for 2/10/10/10 integerDave Airlie2011-11-272-0/+4
|
* r600g: add int support for 2/10/10/10 format.Dave Airlie2011-11-271-0/+3
| | | | | | integer wasn't set properly for the non-uniform types. Signed-off-by: Dave Airlie <[email protected]>
* gallium: add B10G10R10A2_UINT formatDave Airlie2011-11-272-0/+2
| | | | | | This format is used for ARB_texture_rgb10_a2ui extension. Signed-off-by: Dave Airlie <[email protected]>
* android: pass -std=c99 by defaultChia-I Wu2011-11-264-7/+0
| | | | | Several modules expect a C99 compiler already. It is also the default for Makefile build.