summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/cell
Commit message (Collapse)AuthorAgeFilesLines
* gallium: remove PIPE_TEX_FILTER_ANISOLuca Barbieri2010-01-061-4/+0
| | | | | | | | | | | | | | | | | | This patch removes PIPE_TEX_FILTER_ANISO. Anisotropic filtering is enabled if and only if max_anisotropy > 1.0. Values between 0.0 and 1.0, inclusive, of max_anisotropy are to be considered equivalent, and meaning to turn off anisotropic filtering. This approach has the small drawback of eliminating the possibility of enabling anisotropic filter on either minification or magnification separately, which Radeon hardware seems to support, is currently support by Gallium but not exposed to OpenGL. If this is actually useful it could be handled by splitting max_anisotropy in two values and adding an appropriate OpenGL extension. NOTE: some fiddling & reformatting by keithw to get this patch to apply. Hopefully nothing broken in the process.
* Merge commit 'origin/gallium-draw-retval'Keith Whitwell2010-01-051-10/+8
|\ | | | | | | | | Conflicts: src/gallium/drivers/identity/id_context.c
| * gallium: propagate draw retval changes into cell driverRoland Scheidegger2009-12-231-10/+8
| |
* | Remove TGSI_OPCODE_SHR, map existing usage to TGSI_OPCODE_ISHR.Michal Krol2010-01-051-1/+1
| | | | | | | | This is to differentiate it from its unsigned version, TGSI_OPCODE_USHR.
* | gallium: add geometry shader support to galliumZack Rusin2009-12-253-6/+6
| |
* | Merge branch 'gallium-edgeflags'Roland Scheidegger2009-12-221-10/+0
|\ \ | |/ |/| | | | | Conflicts: src/mesa/state_tracker/st_draw.c
| * gallium: fix up drivers for edgeflag changesRoland Scheidegger2009-12-191-10/+0
| | | | | | | | | | several drivers which chose to ignore edgeflags might require some more work, while edgeflags never worked there they might now crash.
* | Move the remaining format pf_get_* functions to u_format.h.Michal Krol2009-12-171-10/+10
| | | | | | | | | | Previously they depended on format blocks, but after removing those they started depending on format encoding.
* | Merge branch 'master' into pipe-format-simplifyMichal Krol2009-12-173-18/+16
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gallium/auxiliary/draw/draw_pipe_aaline.c src/gallium/auxiliary/draw/draw_pipe_pstipple.c src/gallium/auxiliary/util/u_blit.c src/gallium/auxiliary/util/u_gen_mipmap.c src/gallium/auxiliary/util/u_surface.c src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c src/gallium/drivers/cell/ppu/cell_texture.c src/gallium/drivers/llvmpipe/lp_texture.c src/gallium/drivers/r300/r300_emit.c src/gallium/drivers/r300/r300_texture.c src/gallium/drivers/softpipe/sp_texture.c src/gallium/drivers/softpipe/sp_tile_cache.c src/gallium/drivers/svga/svga_state_vs.c src/gallium/include/pipe/p_format.h src/gallium/state_trackers/dri/dri_drawable.c src/gallium/state_trackers/egl/egl_surface.c src/gallium/state_trackers/python/p_device.i src/gallium/state_trackers/python/st_softpipe_winsys.c src/gallium/state_trackers/vega/api_filters.c src/gallium/state_trackers/vega/image.c src/gallium/state_trackers/vega/mask.c src/gallium/state_trackers/vega/paint.c src/gallium/state_trackers/vega/renderer.c src/gallium/state_trackers/vega/vg_tracker.c src/gallium/state_trackers/xorg/xorg_crtc.c src/gallium/state_trackers/xorg/xorg_dri2.c src/gallium/state_trackers/xorg/xorg_exa.c src/gallium/state_trackers/xorg/xorg_renderer.c src/gallium/state_trackers/xorg/xorg_xv.c src/gallium/state_trackers/xorg/xvmc/surface.c src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c src/gallium/winsys/drm/radeon/core/radeon_buffer.c src/gallium/winsys/egl_xlib/sw_winsys.c src/gallium/winsys/g3dvl/xlib/xsp_winsys.c src/gallium/winsys/gdi/gdi_llvmpipe_winsys.c src/gallium/winsys/gdi/gdi_softpipe_winsys.c src/gallium/winsys/xlib/xlib_cell.c src/gallium/winsys/xlib/xlib_llvmpipe.c src/gallium/winsys/xlib/xlib_softpipe.c src/mesa/state_tracker/st_cb_fbo.c src/mesa/state_tracker/st_cb_texture.c src/mesa/state_tracker/st_texture.c
| * cell: use boolean instead of boolRoland Scheidegger2009-12-081-1/+1
| |
| * Merge branch 'gallium-strict-aliasing'Roland Scheidegger2009-12-081-3/+3
| |\
| | * gallium/util: fix util_color_[un]pack[-ub] to be strict aliasing safeRoland Scheidegger2009-12-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | use pointer to union instead of void pointer. gcc complained a lot, depending what the pointer originally actually was. Looks like it's in fact maybe legal to cast for instance uint pointers to union pointers as long as union contains a uint type, hence use this with some callers, other just use union util_color in the first place.
| * | Merge branch 'gallium-noblocks'Roland Scheidegger2009-12-041-16/+14
| |\ \ | | |/ | |/| | | | | | | Conflicts: src/gallium/state_trackers/xorg/xorg_exa.c
| | * gallium: adapt drivers to interface cleanupsRoland Scheidegger2009-12-021-16/+14
| | |
* | | Move pf_get_bits/size() to u_format auxiliary module.Michal Krol2009-12-031-2/+4
|/ /
* | cell: fix TGSI breakageBrian Paul2009-12-021-1/+1
| |
* | Merge commit 'origin/tgsi-simplify-ext'Keith Whitwell2009-12-013-160/+160
|\ \ | | | | | | | | | | | | Conflicts: src/gallium/drivers/r300/r300_vs.c
| * | tgsi: rename fields of tgsi_full_src_register to reduce verbosityKeith Whitwell2009-11-243-30/+30
| | | | | | | | | | | | | | | | | | | | | SrcRegister -> Register SrcRegisterInd -> Indirect SrcRegisterDim -> Dimension SrcRegisterDimInd -> DimIndirect
| * | tgsi: rename fields of tgsi_full_dst_register to reduce verbosityKeith Whitwell2009-11-242-16/+16
| | | | | | | | | | | | | | | DstRegister -> Register DstRegisterInd -> Indirect
| * | tgsi: rename fields of tgsi_full_declaration to reduce verbosityKeith Whitwell2009-11-242-4/+4
| | | | | | | | | | | | DeclarationRange -> Range
| * | tgsi: rename fields of tgsi_full_instruction to avoid excessive verbosityKeith Whitwell2009-11-242-119/+119
| | | | | | | | | | | | | | | | | | | | | | | | InstructionPredicate -> Predicate InstructionLabel -> Label InstructionTexture -> Texture FullSrcRegisters -> Src FullDstRegisters -> Dst
* | | cell: Update for renamed sampler/texture state setters.Michal Krol2009-12-011-2/+2
| |/ |/|
* | gallium: fix more statetrackers/drivers for not using texture ↵Roland Scheidegger2009-11-262-18/+16
|/ | | | width/height/depth arrays
* gallium: remove extended negate also, and also the ExtSwz tokenKeith Whitwell2009-10-231-46/+0
| | | | | | Likewise, the extended negate functionality hasn't been used since mesa switched to using tgsi_ureg to build programs, and has been translating the SWZ opcode internally to a single MAD.
* cell: typo from ExtSwizzle commitKeith Whitwell2009-10-231-1/+1
|
* gallium: remove the swizzling parts of ExtSwizzleKeith Whitwell2009-10-233-79/+14
| | | | | | | | | These haven't been used by the mesa state tracker since the conversion to tgsi_ureg, and it seems that none of the other state trackers are using it either. This helps simplify one of the biggest suprises when starting off with TGSI shaders.
* gallium: remove noise opcodesKeith Whitwell2009-10-231-16/+0
| | | | | | | | | | | Provide a dummy implementation in the GL state tracker (move 0.5 to the destination regs). At some point, a motivated person could add a better implementation of noise. Currently not even the nvidia binary drivers do anything more than this. In any case, the place to do this is in the GL state tracker, not the poor driver.
* Merge branch 'mesa_7_6_branch' of ↵Alex Deucher2009-10-221-2/+2
|\ | | | | | | git+ssh://[email protected]/git/mesa/mesa
| * cell: fix compilation on cellMarc Dietrich2009-10-201-2/+2
| | | | | | | | s/LERP/LRP/
* | gallium: Preparations for adding more PIPE_TRANSFER_* usage flags.Michel Dänzer2009-10-021-14/+4
| | | | | | | | | | | | Always test for PIPE_TRANSFER_READ/WRITE using the bit-wise and operator, and add a pipe_transfer_buffer_flags() helper for getting the buffer usage flags corresponding to them.
* | gallium: Update vendor string.José Fonseca2009-09-231-1/+1
| |
* | gallium: Deprecate PIPE_CAP_S3TC.José Fonseca2009-09-161-2/+0
|/ | | | | No longer used. S3TC support is queried via pipe_screen::is_format_supported.
* tgsi: remove redundant CND0 opcodeKeith Whitwell2009-09-011-4/+0
| | | | Can be implemented with CMP src2, src1, src0
* cell: fix compilationMarc Dietrich2009-08-302-4/+4
|
* cell: fix incorrect pipe_transfer testsBrian Paul2009-08-171-2/+4
| | | | The value is an enum, not a bitmask.
* gallium: Move minify() to u_math.Corbin Simpson2009-08-071-7/+0
| | | | | minify() is usually used in mipmap size calculation. Strangely enough, we all defined it as MAX2(1, d >> 1); imagine that. :3
* Rename TGSI LOOP instruction to better match theri usage.Michal Krol2009-07-312-6/+6
| | | | | | | | The LOOP/ENDLOOP pair is renamed to BGNFOR/ENDFOR as its behaviour is similar to a C language for-loop. The BGNLOOP2/ENDLOOP2 pair is renamed to BGNLOOP/ENDLOOP as now there is no name collision.
* gallium: remove deprecated TGSI opcodesKeith Whitwell2009-07-231-12/+0
| | | | | | Various opcodes which can be implemented trivially with other TGSI opcodes, such as matrix multiplication and negation. These were not used by any state tracker or implemented by any of the drivers.
* cell: update TGSI_OPCODE_ casesBrian Paul2009-07-221-18/+8
|
* gallium: simplify tgsi_full_immediate structKeith Whitwell2009-07-221-2/+2
| | | | | | | | | | | | | Remove the need to have a pointer in this struct by just including the immediate data inline. Having a pointer in the struct introduces complications like needing to alloc/free the data pointed to, uncertainty about who owns the data, etc. There doesn't seem to be a need for it, and it is unlikely to make much difference plus or minus to performance. Added some asserts as we now will trip up on immediates with more than four elements. There were actually already quite a few such asserts, but the >4 case could be used in the future to specify indexable immediate ranges, such as lookup tables.
* Merge branch 'mesa_7_5_branch'Brian Paul2009-06-261-0/+2
|\ | | | | | | | | | | | | | | Conflicts: Makefile src/gallium/drivers/softpipe/sp_screen.c src/mesa/main/version.h
| * cell: PIPE_CAP_TGSI_CONT_SUPPORTED queryBrian Paul2009-06-261-0/+2
| |
* | cell: perform triangle cull a little earlierJonathan Adamczewski2009-05-211-31/+74
| | | | | | | | | | | | | | | | | | | | In spu_tri.c:setup_sort_vertices() triangles are culled after the vertices are sorted. This patch moves the check a little earlier and performs the actual check a little faster through intrinsics and a little trickery. Reduced code size and less work is done before a triangle is deemed OK to skip.
* | cell: unroll inner loop of spu_render.c:cmd_render()Jonathan Adamczewski2009-05-213-32/+89
|/ | | | | | | | | | | | | | | It was taking approximately 50 cycles to extract the vertex indices, calculate the vertex_header pointers and call tri_draw() for each three vertices - . Unrolled, it takes less than 100 cycles to extract, unpack, calculate pointers and call tri_draw() eight times. It does have a nasty jump-tabled switch. I'm sure that there's a better way... Code size of spu_render.o gets larger due to the extra constants and work in the inner loop, there are extra stack saves and loads because there are more registers in use, and an assert. spu_tri.o gets a little smaller.
* gallium: Make sure we flush before some texture / buffer operations.Thomas Hellstrom2009-04-151-0/+25
| | | | | | | Also implement context member functions to optimize away those flushes whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
* cell: update clear() code to catch up to gallium changesBrian Paul2009-04-043-39/+25
|
* gallium: Remove some little-used fields from struct pipe_surface.Michel Dänzer2009-03-261-13/+0
|
* gallium: Remove do_flip argument from surface_copyJakob Bornecrantz2009-03-131-1/+13
| | | | | | | I should have gotten most uses and implementation correctly fixed, but things might break. Feel free to blame me.
* cell: update cell driver after gallium reference count changesBrian Paul2009-03-042-6/+3
|
* gallium: Unify reference counting.Michel Dänzer2009-03-042-46/+25
| | | | | | | | | | | | | | The core reference counting code is centralized in p_refcnt.h. This has some consequences related to struct pipe_buffer: * The screen member of struct pipe_buffer must be initialized, or pipe_buffer_reference() will crash trying to destroy a buffer with reference count 0. u_simple_screen takes care of this, but I may have missed some of the drivers not using it. * Except for rare exceptions deep in winsys code, buffers must always be allocated via pipe_buffer_create() or via screen->*buffer_create() rather than via winsys->*buffer_create().