summaryrefslogtreecommitdiffstats
path: root/src/gallium/include/pipe
Commit message (Collapse)AuthorAgeFilesLines
* gallium: simplify tgsi tokens furtherKeith Whitwell2009-11-241-137/+21
| | | | | | | | | | | | | | | Drop anonymous 'Extended' fields, have every optional token named explicitly in its parent. Eg. there is now an Instruction.Label flag, etc. Drop destination modifiers and other functionality which cannot be generated by tgsi_ureg.c, which is now the primary way of creating shaders. Pull source modifiers into the source register token, drop the second negate flag. The source register token is now full - if we need to expand it, probably best to move all of the modifiers to a new token and have a single flag for it.
* gallium: Refactor the instruction predicate TGSI token.Michal Krol2009-11-241-10/+7
| | | | | | | | | Rename it to tgsi_instruction_predicate -- it's no longer an extended token. Its presence is indicated by a new flag in tgsi_instruction that indicates whether an instruction is predicated. Also, change predicate index representation to match the other tokens that specify register indices.
* gallium: Add UNSYNCHRONIZED cpu access flag. Document others.José Fonseca2009-11-061-2/+57
|
* gallium: Cleanup predicate and condition code TGSI tokens.Michal Krol2009-11-022-99/+20
| | | | | | | | | | | | | | | | | | There is little point in having a special TGSI token just to handle predicate register updates. Remove tgsi_dst_register_ext_predicate token and instead use a new PREDICATE register file to update predicates. Actually, the contents of the obsolete token are being moved to tgsi_instruction_ext_predicate, where they should be from the very beginning. Remove the NVIDIA-specific condition code tokens -- nobody uses them and they can be emulated with predicates if needed. Introduce PIPE_CAP_SM3 that indicates whether a driver supports SM3-level instructions, and in particular predicates. Add PIPE_CAP_MAX_PREDICATE_REGISTERS that can be used to query the driver how many predicate registers it supports (currently it would be 1).
* gallium: Move enum pipe_error into p_defines.h.José Fonseca2009-10-252-65/+17
| | | | It's really just another define. No need for its own header.
* gallium: remove extended negate also, and also the ExtSwz tokenKeith Whitwell2009-10-231-24/+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.
* gallium: remove the swizzling parts of ExtSwizzleKeith Whitwell2009-10-231-15/+2
| | | | | | | | | 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-4/+1
| | | | | | | | | | | 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.
* gallium: Permit surface_copy and surface_fill to be NULL.Corbin Simpson2009-10-171-0/+3
| | | | | | | | | | | | | Uf. Lots of files touched. Would people with working vega, xorg, dri1, etc. please make sure you are not broken, and fix yourself up if you are. There were only two or three places where the code did not have painful fallbacks, so I would advise st maintainers to find less painful workarounds, or consider overhauling util_surface_copy and util_surface_fill. Per ymanton, darktama, and Dr_Jakob's suggestions, clear has been left as-is. I will not add PIPE_CAP_BLITTER unless it is deemed necessary.
* gallium: New ALIGN_STACK macro to tell gcc to align stack pointer.José Fonseca2009-10-141-0/+6
|
* gallium: Add PIPE_TRANSFER_MAP_DIRECTLY usage flag.Michel Dänzer2009-10-021-1/+12
| | | | | Asks the driver to map the texture storage directly or return NULL if that's not possible.
* gallium: Preparations for adding more PIPE_TRANSFER_* usage flags.Michel Dänzer2009-10-021-0/+16
| | | | | | 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.
* g3dvl: Copyright blocks.Younes Manton2009-10-012-0/+54
|
* g3dvl: Color space conv interface & vl impl.Younes Manton2009-10-011-1/+3
| | | | | | | | Interface is pipe_video_context::set_csc_matrix(). vl_csc.h defines some helpers to generate CSC matrices based on one of the color standard and a user defined ProcAmp (brightness, contrast, saturation, hue).
* util: define PIPE_OS_FREEBSD to correct u_cpu_detect on FreeBSD.Robert Noland2009-10-011-0/+13
| | | | | | | Since the various BSDs use some different features here, define PIPE_OS_OPENBSD and PIPE_OS_NETBSD as well Signed-off-by: Robert Noland <[email protected]>
* gallium: remove depth.occlusion_count flagKeith Whitwell2009-10-011-1/+0
| | | | | | | This was redundant as drivers can just keep track of whether they are inside a begin/end query pair. We want to add more query types later and also support nested queries, none of which map well onto a flag like this. No driver appeared to be using the flag.
* gallium: New PIPE_OS_UNIX to simplify code that is portable to all unices.José Fonseca2009-09-291-0/+5
|
* g3dvl: assert.h -> util/u_debug.hJosé Fonseca2009-09-291-1/+1
|
* g3dvl: Define PIPE_VIDEO_CODEC_UNKNOWN for failures.José Fonseca2009-09-292-3/+3
| | | | gcc 4.4 seems particularly picky with int -> enum conversions.
* g3dvl: pipe_video_context interface, softpipe impl, auxiliary libsYounes Manton2009-09-275-1/+307
|
* gallium/include: update some commentsKeith Whitwell2009-09-231-2/+20
|
* gallium: remove incorrect 'return' stmtBrian Paul2009-09-161-1/+1
|
* gallium: Deprecate PIPE_CAP_S3TC.José Fonseca2009-09-161-1/+1
| | | | | No longer used. S3TC support is queried via pipe_screen::is_format_supported.
* Merge branch 'mesa_7_6_branch'Brian Paul2009-09-151-5/+5
|\
| * gallium: Add Mac OS to pipe/p_thread.h.Vinson Lee2009-09-141-5/+5
| | | | | | | | Mac OS also has POSIX threads.
* | gallium: Use the enum for pipe_transfer::usage.José Fonseca2009-09-151-1/+1
| |
* | gallium: pipe_transfer_destroy helper inline.José Fonseca2009-09-151-0/+7
| |
* | gallium: Fix pointer type casts.Michal Krol2009-09-151-4/+4
| |
* | gallium: Add pipe_transfer_map/unmap inlines.José Fonseca2009-09-141-0/+13
|/
* gallium: Added HaikuOS platformaljen2009-09-093-6/+11
|
* tgsi: remove redundant CND0 opcodeKeith Whitwell2009-09-011-1/+1
| | | | Can be implemented with CMP src2, src1, src0
* Merge branch 'mesa_7_5_branch'Brian Paul2009-08-181-0/+7
|\
| * gallium: Always map for READ flag when DISCARD is not set.José Fonseca2009-08-141-0/+7
| | | | | | | | | | | | | | | | | | | | This prevents the driver from discarding a buffer when the whole buffer is mapped for writing, but only a portion is effectively written. This is a temporary fix, because WRITE shouldn't imply DISCARD. The full fix implies using PIPE_BUFFER_USAGE_DISCARD, throughout the code, and will go only into master.
* | gallium: improved comments, minor whitespace changesBrian Paul2009-08-181-7/+10
| |
* | gallium: Make PIPE_TRANSFER_{READ,WRITE,READ_WRITE} bitmask friendly.Maarten Maathuis2009-08-171-3/+3
| |
* | gallium: Add texture usage information to surface_buffer_createJakob Bornecrantz2009-08-112-0/+2
| | | | | | | | | | | | We need aditional meta data about the usage of the surface in softpipe because we need to be able tell the diffrence between PRIMARY and DISPLAY_TARGET surfaces.
* | Rename TGSI LOOP instruction to better match theri usage.Michal Krol2009-07-311-4/+4
| | | | | | | | | | | | | | | | 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.
* | tgsi: Declare a LOOP register.Michal Krol2009-07-301-0/+1
| | | | | | | | | | | | | | The only valid usage for LOOP/ENDLOOP instructions is LOOP[0] as a destination register. The only valid usage for the remaining instructions is LOOP[0].x as an indirect register.
* | gallium: clean up opcode definitionsKeith Whitwell2009-07-231-145/+11
| | | | | | | | | | | | Remove commented-out opcodes. Remove information about API mappings to opcodes, but add a reference to tgsi-instruction-set.txt where that information is better presented.
* | gallium: remove deprecated TGSI opcodesKeith Whitwell2009-07-231-8/+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.
* | gallium: remove multiple aliases for TGSI opcodesKeith Whitwell2009-07-221-40/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a source of ongoing confusion. TGSI has multiple names for opcodes where the same semantics originate in multiple shader APIs. For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for opcodes with the same semantics, but aliases those names to the same underlying opcode number. This makes it very difficult to visually inspect two sets of opcodes (eg in state tracker & driver) and check if they implement the same functionality. This patch arbitarily rips out the versions of the opcodes not currently favoured by the mesa state tracker and leaves us with a single name for each distinct operation.
* | gallium: simplify tgsi_full_immediate structKeith Whitwell2009-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | gallium: Define PIPE_CAP_BLEND_EQUATION_SEPARATE, remove extension from ↵Patrice Mandin2009-07-141-0/+1
| | | | | | | | default extension list
* | gallium: Add endian detection to p_config.Corbin Simpson2009-07-081-0/+13
| |
* | gallium: rearrange some members to avoid memory holes/paddingZack Rusin2009-07-061-6/+6
| | | | | | | | plus it saves us a cacheline in the cso
* | Merge branch 'mesa_7_5_branch'Jakob Bornecrantz2009-07-031-1/+2
|\| | | | | | | | | | | Conflicts: src/mesa/main/dlist.c src/mesa/vbo/vbo_save_api.c
| * gallium: fix the front face semanticsZack Rusin2009-07-011-1/+2
| | | | | | | | | | | | | | | | mesa allocates both frontface and pointcoord registers within the fog coordinate register, by using swizzling. to make it cleaner and easier for drivers we want each of them in its own register. so when doing compilation from the mesa IR to tgsi allocate new registers for both and add new semantics to the respective declarations.
* | Merge branch 'mesa_7_5_branch'Brian Paul2009-06-303-7/+18
|\| | | | | | | | | | | Conflicts: src/mesa/vbo/vbo_exec_draw.c
| * gallium: New PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag for ↵José Fonseca2009-06-303-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | buffer_flush_mapped_range. When a buffer was mapped for write and no explicit flush range was provided the existing semantics were that the whole buffer would be flushed, mostly for backwards compatability with non map-buffer-range aware code. However if the buffer was mapped/unmapped with nothing really written -- something that often happens with the vbo -- we were unnecessarily assuming that the whole buffer was written. The new PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag (based from ARB_map_buffer_range 's GL_MAP_FLUSH_EXPLICIT_BIT flag) allows to clearly distinguish the legacy usage from the nothing written usage.
* | gallium: remove the pipe_sampler_state::shadow_ambient fieldBrian Paul2009-06-301-1/+0
| | | | | | | | | | | | | | This was only present for the sake of GL_ARB_shadow_ambient which we never implemented in Gallium. If we someday want GL_ARB_shadow_ambient we can implement it in the state tracker by adding a MAD after the relevant TEX instructions.