Commit Graph

11853 Commits

Author SHA1 Message Date
Zack Rusin daf5b0f41b Switch fragment/vertex shaders to the new caching semantics.
Allow driver custom allocation within cached objects. The shaders
are currently twiced (by cso layer and by the program itself).
2007-09-20 07:50:33 -04:00
Brian 37cf13ed9a Checkpoint: replacement of TGSI_ATTRIB_x tokens with input/output semantics.
TGSI_ATTRIB_x tokens still present and used in a few places.
Expanded set of TGSI_SEMANTIC_x tokens for describing the meaning
of inputs/outputs.  These tokens are in a crude state ATM.
Lots of #if 0 / disabled code to be removed yet, etc...
Softpipe and i915 drivers should be in working condition but not heavily tested.
2007-09-19 18:53:59 -06:00
José Fonseca 83a674a7af Update linux-profile config. 2007-09-19 23:48:07 +01:00
Zack Rusin a0e948f3aa Fix a really stupid mistake that Michel hit. Return proper hash. 2007-09-19 15:29:48 -04:00
Michel Dänzer c9a5ef1a1c Fix window resizes.
The memcmp is insufficient for eliminating redundant framebuffer state changes.
2007-09-19 20:40:09 +01:00
Michel Dänzer 617b39ce98 Pad surface dimensions to multiples of 2.
Avoids an assertion failure with softpipe if requested width or height is odd.
2007-09-19 20:40:09 +01:00
Zack Rusin b8ecec7abe Adding proper includes often helps with the warnings,
or so i hear..
2007-09-19 14:14:03 -04:00
Zack Rusin c8650b0874 Avoid redundant reallocation of the template.
cso already allocated the template for us. Returning 0 means
we have no driver specific representation and just want
the template on the bind.
2007-09-19 14:06:19 -04:00
Zack Rusin fe555c39bb Convert the rasterizer cso to the new semantics.
Basically make cso hold the driver specific struct, while
managing the template.
2007-09-19 14:01:18 -04:00
Zack Rusin b6d50abd7d Convert the i915 driver blend state to the new semantics. 2007-09-19 13:12:09 -04:00
Zack Rusin c0bf732208 Redo the cso cache to map driver data in a lot more pleasing way.
Drivers can now create whatever they want from the state template. We
use cso_state object to store the template (necessary during lookups),
and the driver data. Convert blend state to the new semantics.
2007-09-19 13:12:09 -04:00
Brian b3cc74aa44 grab vertex program pointer after state validation 2007-09-19 10:16:46 -06:00
Michel Dänzer bcc13fd3f8 Only generate vertex shader code when necessary. 2007-09-19 16:39:04 +01:00
Zack Rusin f22e920f47 Finish up conversions of shaders to immutable objects.
Create/Delete calls should be split since in create we'll be
compiling them so we want to know which one it is (vertex/fragment).
2007-09-19 06:46:32 -04:00
Brian bb611c5f1f Checkpoint: rework shader input/output register mapping.
This is a step toward removing TGSI_ATTRIB_ tokens.
Basically, when translating Mesa programs to TGSI programs, pass in input and
output register re-maps, plus interpolation info.
There's some known breakage (cubemap.c) so more to be done...
2007-09-18 19:38:35 -06:00
Brian 63be96bdc7 temporarily set the FRAG_BIT_FOGC bit in InputsRead when fog is enabled 2007-09-18 19:38:35 -06:00
Michel Dänzer 3f0e04e0e6 intel_winsys: Disable scheduled buffer swaps for now.
They don't work with private back buffers yet.

This gets vsync working.
2007-09-18 21:50:31 +01:00
Michel Dänzer d39dde6ed4 Fix linux-dri-x86 target. 2007-09-18 21:49:43 +01:00
Brian 6fbbeed690 use perspective projection, press r/R to rotate the quad 2007-09-18 12:56:23 -06:00
Brian 2a460f6185 Fix some issues with perspective-corrected interpolation.
In mesa_to_tgsi.c, use TGSI_INTERPOLATE_PERSPECTIVE by default (to match
post-transform vertex info convention).  More to be done there...
In sp_quad_fs.c, interpolate W in addition to Z.  This fixes the divide
by zero happening in perspective_interpolation() tgsi_exec.c
As it was, we were only getting perspective correction of texture coords
used by the TGSI_TEX instruction since it does a homogeneous divide.
Other coords/varyings were incorrect.
2007-09-18 12:56:23 -06:00
Brian 72b0a57cfa additional comments for tri_persp_coeff() 2007-09-18 12:56:22 -06:00
Zack Rusin ccd63b54cf Convert shader to an immutable state object. 2007-09-18 13:24:44 -04:00
Zack Rusin 498a1b5dc4 Add emacs dirvars file with Mesa indention definition. 2007-09-18 10:02:51 -04:00
Zack Rusin de69fc1703 Finishing up rename of the setup state to the rasterizer state. 2007-09-18 10:02:16 -04:00
Zack Rusin fbb2f840ae move cso cache to the pipe directory 2007-09-18 07:20:14 -04:00
Zack Rusin 29789ca026 Fix a silly bug on setting samplers.
Bind when the currently bound state is /not/ the one
we just found/created.
2007-09-18 07:19:12 -04:00
Zack Rusin 294401814d converting the setup state to immutable object and renaming it to rasterizer state 2007-09-18 07:18:12 -04:00
Zack Rusin d6ac959833 Combing depth and stencil objects and making them immutable.
Converting depth and stencil objects into a single state object
(d3d10 like) and making it immutable.
2007-09-18 06:31:22 -04:00
Zack Rusin 56edb98d97 Fix the warning.
The const is there to enforce the immutable state of the object,
which is in reality owned by the pipe so just cast away the
constness.
2007-09-18 06:31:22 -04:00
Zack Rusin f117327a3f Make sampler an immutable state object.
Switch the sample to be an immutable state object.
2007-09-18 06:31:22 -04:00
Zack Rusin e16c045b83 Implementing a better hash, removing state_tracker dependency from the cache.
Replacing mesa's main hash with one that handles collisions, moving state_tracker
related caching to the state tracker to keep cso cache independent of it. Cleanups.
2007-09-18 06:31:22 -04:00
Zack Rusin 9780327c5d First stab at immutable state objects (create/bind/delete)
We want our state objects to be immutable, handled via the
create/bind/delete calls instead of struct propagation.
Only implementing the blend state to see how it would look like
and work.
2007-09-18 06:31:22 -04:00
Brian ffacb1c12a Replace GL_TEXTURE_* tokens with PIPE_TEXTURE_*
Must have missed this a while back.  This fixes cube mapping.
2007-09-17 15:44:59 -06:00
Brian b4bacd1fca Plug in selection/feedback code.
Not quite finished yet.
Selection/feedback are done with a private instance of the 'draw' module
in the state tracker.  Not quite all the draw context's state is set yet,
namely vertex format info.  Hold off on that for a bit...
2007-09-17 14:24:11 -06:00
Brian 2a40c71fed selection/feedback support 2007-09-17 14:22:49 -06:00
Brian 060a638027 s/bugmgr/bufgr/ 2007-09-17 12:18:32 -06:00
Brian 72d7d2bcc3 Merge branch 'softpipe_0_1_branch' of git+ssh://brianp@git.freedesktop.org/git/mesa/mesa into softpipe_0_1_branch 2007-09-17 12:07:29 -06:00
Keith Whitwell 5578f8ce3b Remove non-meaningful region_idle() interface
This is already handled by the semanics of map(), etc.
2007-09-17 18:04:03 +01:00
Brian f48e055c10 silence warning 2007-09-17 10:05:34 -06:00
Brian 9ea91974e1 update begin/end_query() functions 2007-09-17 10:05:21 -06:00
Michel Dänzer bf92350b5b Fix linux-dri-x86 build. 2007-09-17 13:22:51 +01:00
Michel Daenzer d59c95bfae intel_winsys: Fix intel_buffer_reference.
Correctly clear the pointer to the old buffer (not sure how this could build at
all before...) and only reference the new one when its pointer is non-NULL.
2007-09-14 15:53:52 +01:00
Michel Daenzer c01a5ec3d6 intel_winsys: Adapt to recent drm changes (s/pipes/planes/). 2007-09-14 15:48:54 +01:00
Brian 09fbb3837b Implement query object interface.
This replaces the temporary occlusion counter functions we had before.
Added new ctx->Driver.WaitQuery() function which should block until the result is ready.
Sketch out some code for vertex transformation feedback counters.
2007-09-11 16:01:17 -06:00
Brian 5620d66e36 vertex feedback functions 2007-09-10 17:02:58 -06:00
Brian 6275b40063 merge buffer_unreference(), buffer_reference() 2007-09-10 16:52:05 -06:00
Brian 051a2a3028 clean-ups, comments 2007-09-10 16:35:16 -06:00
Brian c3f7f3124a s/xm_softpipe.c/xm_winsys.c/ 2007-09-10 16:32:24 -06:00
Brian b06641eb4a Rename 2007-09-10 16:31:24 -06:00
Brian d56a3adc30 More work on vertex feedback / glRasterPos. Basic rasterpos works now. 2007-09-10 16:29:23 -06:00