Commit graph

1705 commits

Author SHA1 Message Date
Younes Manton
d18bd04dde g3dvl: Put misc helpers in u_video.h. 2009-11-02 21:22:14 -05:00
Younes Manton
e60a8e4fcf g3dvl: DRM winsys changes. 2009-11-02 20:32:58 -05:00
Michal Krol
0a7d50ed7e gallium: Cleanup predicate and condition code TGSI tokens.
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).
2009-11-02 09:44:18 +00:00
José Fonseca
3a49497f10 gallium: Move enum pipe_error into p_defines.h.
It's really just another define. No need for its own header.
2009-10-25 21:11:54 +00:00
Keith Whitwell
da253319f9 gallium: remove extended negate also, and also the ExtSwz token
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.
2009-10-23 14:50:02 +01:00
Keith Whitwell
b9cb74c7f8 gallium: remove the swizzling parts of ExtSwizzle
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.
2009-10-23 14:31:24 +01:00
Keith Whitwell
4e1d51786e gallium: remove noise opcodes
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.
2009-10-23 13:56:07 +01:00
Corbin Simpson
bb567357bc gallium: Permit surface_copy and surface_fill to be NULL.
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.
2009-10-17 21:32:56 -07:00
José Fonseca
68edb4eac5 gallium: New ALIGN_STACK macro to tell gcc to align stack pointer. 2009-10-14 17:24:22 +01:00
Michel Dänzer
9db647bb7a gallium: Add PIPE_TRANSFER_MAP_DIRECTLY usage flag.
Asks the driver to map the texture storage directly or return NULL if that's
not possible.
2009-10-02 18:13:26 +02:00
Michel Dänzer
47e41b024e gallium: Preparations for adding more PIPE_TRANSFER_* usage flags.
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.
2009-10-02 18:13:26 +02:00
Younes Manton
fcb595c04f g3dvl: Copyright blocks. 2009-10-01 22:53:00 -04:00
Younes Manton
e00da1476f g3dvl: Color space conv interface & vl impl.
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).
2009-10-01 22:52:59 -04:00
Robert Noland
908ecb3faa util: define PIPE_OS_FREEBSD to correct u_cpu_detect on FreeBSD.
Since the various BSDs use some different features here,
define PIPE_OS_OPENBSD and PIPE_OS_NETBSD as well

Signed-off-by: Robert Noland <rnoland@2hip.net>
2009-10-01 08:40:30 -06:00
Keith Whitwell
4456006ba6 gallium: remove depth.occlusion_count flag
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.
2009-10-01 14:34:23 +01:00
José Fonseca
8210abb113 gallium: New PIPE_OS_UNIX to simplify code that is portable to all unices. 2009-09-29 13:59:16 +01:00
José Fonseca
bd2e36a38f g3dvl: assert.h -> util/u_debug.h 2009-09-29 11:09:55 +01:00
José Fonseca
7db33440a8 g3dvl: Define PIPE_VIDEO_CODEC_UNKNOWN for failures.
gcc 4.4 seems particularly picky with int -> enum conversions.
2009-09-29 11:09:55 +01:00
Younes Manton
f547472bfa g3dvl: pipe_video_context interface, softpipe impl, auxiliary libs 2009-09-27 19:49:06 -04:00
Keith Whitwell
a1fa770c01 gallium/include: update some comments 2009-09-23 17:04:48 +01:00
Brian Paul
aabcc6cb23 gallium: remove incorrect 'return' stmt 2009-09-16 08:59:32 -06:00
José Fonseca
c29905aa31 gallium: Deprecate PIPE_CAP_S3TC.
No longer used. S3TC support is queried via
pipe_screen::is_format_supported.
2009-09-16 14:33:52 +01:00
Brian Paul
41bbc83951 Merge branch 'mesa_7_6_branch' 2009-09-15 09:47:35 -06:00
José Fonseca
a18301790c gallium: Use the enum for pipe_transfer::usage. 2009-09-15 16:02:55 +01:00
José Fonseca
cb5f1bce23 gallium: pipe_transfer_destroy helper inline. 2009-09-15 16:02:54 +01:00
Michal Krol
7aee53002c gallium: Fix pointer type casts. 2009-09-15 12:00:27 +01:00
José Fonseca
c51bd94a14 gallium: Add pipe_transfer_map/unmap inlines. 2009-09-14 20:12:01 +01:00
Vinson Lee
2729db8976 gallium: Add Mac OS to pipe/p_thread.h.
Mac OS also has POSIX threads.
2009-09-14 11:50:48 -06:00
aljen
c6c44bf481 gallium: Added HaikuOS platform 2009-09-09 08:24:18 -06:00
Keith Whitwell
b3f4b56a3b tgsi: remove redundant CND0 opcode
Can be implemented with CMP src2, src1, src0
2009-09-01 17:30:01 +01:00
Jakob Bornecrantz
1e5014f7df drm_api: Operate on textures instead of buffers
Most use cases just got the buffer from the texture
	and then called into one of the get_handle functions.

	Also with this patch it would be easier to move to a
	generic function for getting handles from textures
	and textures from handles, that is exposed via the screen.
2009-08-28 13:38:23 +01:00
Brian Paul
73fc09a7bf Merge branch 'mesa_7_5_branch' 2009-08-18 17:55:27 -06:00
Brian Paul
1c1ee1176d gallium: improved comments, minor whitespace changes 2009-08-18 09:31:22 -06:00
Maarten Maathuis
f199dbdb76 gallium: Make PIPE_TRANSFER_{READ,WRITE,READ_WRITE} bitmask friendly. 2009-08-17 18:48:14 +02:00
José Fonseca
e3bc1fb6bc gallium: Always map for READ flag when DISCARD is not set.
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.
2009-08-14 20:05:51 +01:00
Jakob Bornecrantz
a41a253ce3 gallium: Add texture usage information to surface_buffer_create
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.
2009-08-11 18:34:43 +01:00
Michal Krol
cb90c43676 Rename TGSI LOOP instruction to better match theri usage.
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.
2009-07-31 18:14:40 +02:00
Michal Krol
cf8907018e tgsi: Declare a LOOP register.
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.
2009-07-30 10:34:06 +02:00
Keith Whitwell
d0d98f3ecf gallium: clean up opcode definitions
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.
2009-07-23 14:39:07 +01:00
Keith Whitwell
78379abcbf gallium: remove deprecated TGSI opcodes
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.
2009-07-23 14:38:26 +01:00
Keith Whitwell
ede9f3b52e gallium: remove multiple aliases for TGSI opcodes
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.
2009-07-22 12:42:09 +01:00
Keith Whitwell
fd31f92cea gallium: simplify tgsi_full_immediate struct
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.
2009-07-22 12:42:09 +01:00
Patrice Mandin
54cf63278f gallium: Define PIPE_CAP_BLEND_EQUATION_SEPARATE, remove extension from default extension list 2009-07-14 09:44:49 +02:00
Corbin Simpson
ce0f7954f8 gallium: Add endian detection to p_config. 2009-07-08 11:26:52 -07:00
Zack Rusin
124a6b1958 gallium: rearrange some members to avoid memory holes/padding
plus it saves us a cacheline in the cso
2009-07-06 17:21:37 -04:00
Jakob Bornecrantz
862488075c Merge branch 'mesa_7_5_branch'
Conflicts:
	src/mesa/main/dlist.c
	src/mesa/vbo/vbo_save_api.c
2009-07-03 18:53:58 +02:00
Brian Paul
b40dc7e7fc Merge branch 'mesa_7_5_branch'
Conflicts:

	src/mesa/vbo/vbo_exec_draw.c
2009-06-30 08:56:53 -06:00
Brian Paul
b750b9fc3d gallium: remove the pipe_sampler_state::shadow_ambient field
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.
2009-06-30 08:51:32 -06:00
José Fonseca
4ffe2844a4 gallium: New PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag for 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.
2009-06-30 15:33:53 +01:00
Zack Rusin
1c04731b87 gallium: fix the front face semantics
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.
2009-07-01 10:45:55 -04:00