Commit Graph

74545 Commits

Author SHA1 Message Date
Zack Rusin 449562cde0 Switch to using LLVM builder.
Instead of creating all the instructions by hand, switching
to using LLVMBuilder.
2007-10-30 09:00:36 -04:00
Michel Dänzer 3177b4e2cf More vblank cleanups.
* Fix crash at context creation in most drivers supporting vblank.
* Don't pass vblank sequence or flags to functions that get passed the drawable
  private already.
* Attempt to initialize vblank related drawable private fields just once
  per drawable. May need more work in some drivers.
2007-10-30 13:16:50 +01:00
Zack Rusin c97c03da46 Refactor vector extraction. 2007-10-30 07:43:02 -04:00
Zack Rusin dfd774318d Export true C based builtins to a file of its own. 2007-10-30 07:16:22 -04:00
Zack Rusin a01341a762 Rename to better reflect what it's really doing. 2007-10-30 06:55:08 -04:00
Zack Rusin ea2c74a25e Code cleanups. 2007-10-30 06:33:30 -04:00
Zack Rusin a94251d081 Cleanup constant vector handling a bit. 2007-10-30 05:15:06 -04:00
Zack Rusin 75a9018fb9 Dump only relevant functions when in the debugging output. 2007-10-30 05:15:06 -04:00
Zack Rusin fd908ce234 Change the way we handle temporaries in LLVM translation.
TGSI uses TEMP, among others, as a way of passing arguments
from one function to another. Instead of trying to figure out
which temp's a function needs and trying to dynamically adjust its
signature just pass the whole array of temporaries to them.
2007-10-30 05:15:05 -04:00
Zack Rusin b0f3b5910e Enable immediates in TGSI and work with them in LLVM code.
Enables immediates by default in the TGSI translation code
and adds code handling it in llvm tgsi translation.
2007-10-30 05:15:05 -04:00
Brian 8b2f997af5 minor code simplification 2007-10-29 15:15:34 -06:00
Brian 64ffc9540b fix memcpy bugs 2007-10-29 15:15:34 -06:00
Brian 1553eba50c Rewrite update_program() to use _mesa_get_fixed_func_fragment/vertex_program(). 2007-10-29 15:15:34 -06:00
Brian f18d4e058e Remove ctx field from texenvprog_cache 2007-10-29 15:15:34 -06:00
Brian 9946012949 refactoring to begin removing dependency on tnl context 2007-10-29 15:15:34 -06:00
Brian 783cedcdc1 simplify getting of current frag prog 2007-10-29 15:15:34 -06:00
Brian 27153bf02d Refactor _tnl_UpdateFixedFunctionProgram().
New _mesa_get_fixed_func_vertex_program() function...
2007-10-29 15:15:34 -06:00
Brian 83ce6c51d7 Refactor _mesa_UpdateTexEnvProgram()
Will be replaced by _mesa_get_fixed_func_fragment_program().
2007-10-29 15:15:34 -06:00
Eric Anholt dc1264970e [i915] Include header to pick up intel_ttm_bo_create_from_handle() proto. 2007-10-29 13:24:29 -07:00
Eric Anholt b0edb9c38a Merge branch 'origin' 2007-10-29 13:24:27 -07:00
Michal Krol 918ea5168b Rename 'mms-config.' to 'mms.config'.
It looks like Windows does not like filenames ending with a dot,
in effect renaming it to 'mms-config'.
2007-10-29 19:50:10 +00:00
Jesse Barnes ad8ee7db3b Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa 2007-10-29 12:06:36 -07:00
Jesse Barnes 38fdb47d26 Refactor and fix core vblank support
Consolidate support for synchronizing to and retrieving vblank counters.  Also
fix the core vblank code to return monotonic MSC counters, which are required
by some GLX extensions.  Adding support for multiple pipes to a low level
driver is fairly easy, the Intel 965 driver provides simple example code (see
intel_buffers.c:intelWindowMoved()).

The new code bumps the media stream counter extension version to 2 and adds a
new getDrawableMSC callback.  This callback takes a drawablePrivate pointer,
which is used to calculate the MSC value seen by clients based on the actual
vblank counter(s) returned from the kernel.  The new drawable private fields
are as follows:
  - vblSeq - used for tracking vblank counts for buffer swapping
  - vblFlags - flags (e.g. current pipe), updated by low level driver
  - msc_base - MSC counter from the last time the current pipe changed
  - vblank_base - kernel DRM vblank counter from the last time the pipe changed

Using the above variables, the core vblank code (in vblank.c) can calculate a
monotonic MSC value.  The low level DRI drivers are responsible for updating
the current pipe (by setting VBLANK_FLAG_SECONDARY for example in vblFlags)
along with msc_base and vblank_base whenever the pipe associated with a given
drawable changes (again, see intelWindowMoved for an example of this).

Drivers should fill in the GetDrawableMSC DriverAPIRec field to point to
driDrawableGetMSC32 and add code for pipe switching as outlined above to fully
support the new scheme.
2007-10-29 12:06:00 -07:00
Chris Rankin 1421bffb18 Remember to call XSync() before resetting X error handler. 2007-10-29 14:37:32 -04:00
José Fonseca f33ced441c Update intel_is_format_supported. 2007-10-29 17:37:05 +00:00
Michal Krol da9815e17f Add detailed comments. 2007-10-29 17:36:20 +00:00
Michal Krol 7de874ec2c Make it compile under linux.
Move pipe_region/surface_reference functions to pipe/p_inlines.h.
Remove #include "p_util.h" from pipe/p_context.h.
2007-10-29 17:05:38 +00:00
Michal Krol ee295fccdd Make gallium compile in win32.
Use FREE, MALLOC, CALLOC, GETENV wrappers.
Silence compiler warnings.
Add proper copyrights.
2007-10-29 17:05:38 +00:00
Brian d37eb130c0 remove dead code 2007-10-29 10:37:12 -06:00
Brian ebe1642d7a check for signed vs. unsigned in st_get_format_info() - fixes accum buffer failure 2007-10-29 10:36:10 -06:00
Brian 40133487db disable ctx->Driver.NewProgram() call in _mesa_new_program()
This was causing infinite recursive calls w/ software drivers.
All vertex/fragment shaders should be allocated by calling
ctx->Driver.NewProgram(), not by calling _mesa_new_program().
2007-10-29 10:01:15 -06:00
Brian b58b64f361 fix bad fragment shader pointer assignment 2007-10-29 09:41:53 -06:00
Brian cc0b55c242 simplify code which access the current vertex/fragment shaders 2007-10-29 09:25:00 -06:00
Brian 2a3f3679eb Disable the else clause which assigns the default fragment program to ctx->FragmentProgram._Current
The _Current field should either point to the fragment program which is to be
run (GLSL, ARB_f_p, fixed-func-generated, etc) or be NULL if conventional
fixed-function code is to be used.  Matches TNL program code.
2007-10-29 09:25:00 -06:00
Zack Rusin a6a3d8cb75 Remove conditionals from the makefiles. 2007-10-29 16:14:10 +00:00
Zack Rusin a70c5e37f1 Remove typedefs from enums.
typedefs are rather evil, remove them and use the enum
keyword explicitely.
2007-10-29 16:14:10 +00:00
Zack Rusin 25b17b213b Refactor the LLVM code a bit.
Move the CPU vertex shader execution code to the draw
module, remove traces of LLVM from the state tracker,
abstract execution engine for the purposes of the draw module.
2007-10-29 16:14:10 +00:00
Zack Rusin abe8cd1917 Make sure the swizzling vector is being recreated for each function. This makes
GLSL bricks work.
2007-10-29 16:14:10 +00:00
Michal Krol 3b25ce9eca Add SSE dump facilities.
Wrap x86_, sse_ and sse2 rtasm calls in emit_ calls.
Those emit_ calls, if required, dump instructions to stdout.
SSE dumping disabled by default.
2007-10-29 13:25:00 +00:00
Michal Krol 1eabc29ed1 Code re-org. Add comments. 2007-10-29 13:25:00 +00:00
Michal Krol bd922c6437 Implement RET opcode. 2007-10-29 13:25:00 +00:00
Michal Krol e15ca7963e Remove TGSI_INTERPOLATE_ATTRIB. 2007-10-29 13:25:00 +00:00
José Fonseca 242b8659e4 Fix i915simple build. 2007-10-29 12:29:06 +00:00
José Fonseca 1039a75514 Reuse hardware vertice representation. 2007-10-29 12:15:57 +00:00
José Fonseca a9e1fcf98a Enable the vertex buffer stage according to the I915_VBUF environment var. 2007-10-29 12:15:57 +00:00
José Fonseca 46aeff5814 Get vertex buffer stage in a minimally working state. 2007-10-29 12:15:57 +00:00
José Fonseca 02091e0f9c Reserve the accurate number of dwords in the batch buffer. 2007-10-29 12:15:57 +00:00
José Fonseca dbb33a9710 Start a vertex buffer constuction stage for i915 based on Keith's draft done on softpipe. 2007-10-29 12:15:57 +00:00
Michal Krol af5061cf5a Fix newlines. 2007-10-29 11:03:37 +00:00
Alan Hourihane b59dbd822f Only set R_MODE with NV_point_sprite 2007-10-28 20:07:37 +00:00