aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/r200
Commit message (Collapse)AuthorAgeFilesLines
* r200: accept PROGRAM_CONSTANT inputs due to mesa changesAndrew Randrianasulu2008-04-171-0/+1
|
* r200: fix XPD vertex program instruction when using temps as inputsRoland Scheidegger2008-04-121-3/+13
| | | | | | | due to the two read ports limit into temp memory may need the MAD_2 instruction for the second instruction of the decomposed XPD. While here, also try to avoid MAD_2 for MAD if all 3 inputs are temps but the temps aren't actually distinct.
* DRI interface changes and DRI2 direct rendering support.Kristian Høgsberg2008-03-311-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add DRI2 direct rendering support to libGL and add DRI2 client side protocol code. Extend the GLX 1.3 create drawable functions in glx_pbuffer.c to call into the DRI driver when possible. Introduce __DRIconfig, opaque struct that represents a DRI driver configuration. Get's rid of the open coded __GLcontextModes in the DRI driver interface and the context modes create and destroy functions that the loader was requires to provide. glcore.h is no longer part of the DRI driver interface. The DRI config is GL binding agnostic, that is, not specific to GLX, EGL or other bindings. The core API is now also an extension, and the driver exports a list of extensions as the symbol __driDriverExtensions, which the loader must dlsym() for. The list of extension will always include the DRI core extension, which allows creating and manipulating DRI screens, drawables and contexts. The DRI legacy extension, when available, provides alternative entry points for creating the DRI objects that work with the XF86DRI infrastructure. Change DRI2 client code to not use drm drawables or contexts. We never used drm_drawable_t's and the only use for drm_context_t was as a unique identifier when taking the lock. We now just allocate a unique lock ID out of the DRILock sarea block. Once we get rid of the lock entirely, we can drop this hack. Change the interface between dri_util.c and the drivers, so that the drivers now export the DriverAPI struct as driDriverAPI instead of the InitScreen entry point. This lets us avoid dlsym()'ing for the DRI2 init screen function to see if DRI2 is supported by the driver.
* Use __DRIextension mechanism providing loader functionality to the driver.Kristian Høgsberg2008-02-292-4/+6
| | | | | | | Instead of passing in a fixed struct, the loader now passes in a list of __DRIextension structs, to advertise the functionality it can provide to the driver. Each extension is individually versioned and can be extended or phased out as the interface develops.
* Replace gl_framebuffer's _ColorDrawBufferMask with _ColorDrawBufferIndexesBrian2008-01-061-12/+12
| | | | | | | Each array element is now a BUFFER_x token rather than a BUFFER_BIT_x bitmask. The number of active color buffers is specified by _NumColorDrawBuffers. This builds on the previous DrawBuffer changes and will help with drivers implementing GL_ARB_draw_buffers.
* Simplify ctx->_NumColorDrawBuffers, _ColorDrawBuffers and fix bug 13835.Brian2008-01-062-3/+3
| | | | | | | | | | | These fields are no longer indexed by shader output. Now, we just have a simple array of renderbuffer pointers. If the shader writes to gl_FragData[i], send those colors to the N _ColorDrawBuffers. Otherwise, replicate the single gl_FragColor (or the fixed-function color) to the N _ColorDrawBuffers. A few more changes and simplifications can follow from this...
* rx00: fix off by one error in tempreg checkHans de Goede2008-01-021-4/+6
|
* fix GL_LINE_LOOP with drivers using own render pipeline stage (#12410, #13527)Roland Scheidegger2007-12-221-1/+1
| | | | | | primitive needs to include the begin/end flags (broken since vbo-0.2). Should fix missing first/last line segment on gamma, i810, i915, mga, r200, radeon, s3v, savage, unichrome (r300 already correct). Tested on r200, fixes #13527.
* r200: Fix texture format regression on big endian systems.Michel Dänzer2007-11-281-3/+6
| | | | | | | See https://bugs.freedesktop.org/show_bug.cgi?id=13324 . Also use tx_table_be for VALID_FORMAT, in case r200SetTexImages ever gets called for MESA_FORMAT_RGB888.
* r200: Fix SetTexOffset format for 16 bit pixmaps/textures.Michel Dänzer2007-11-061-6/+6
| | | | Use symbolic array indices to clarify.
* More vblank cleanups.Michel Dänzer2007-10-302-10/+10
| | | | | | | | * 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.
* Refactor and fix core vblank supportJesse Barnes2007-10-294-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Replace open-coded major, minor, and patch version fields with __DRIversionRec.Kristian Høgsberg2007-10-101-4/+4
|
* Drop __DRInativeDisplay and pass in __DRIscreen pointers instead.Kristian Høgsberg2007-10-102-6/+6
| | | | | | | | | | | | | Many DRI entry points took a __DRInativeDisplay pointer and a screen index as arguments. The only use for the native display pointer was to pass it back to the loader when looking up the __DRIscreen for the given screen index. Instead, let's just pass in the __DRIscreen pointer directly, which let's drop the __DRInativeDisplay type and the getScreen function. The assumption is now that the loader will be able to retrieve context from the __DRIscreen pointer when necessary.
* r200: Implement SetTexOffset hook.Chris Rankin2007-09-294-31/+73
| | | | Implementation guidance by Michel Dänzer, final testing by Timo Aaltonen.
* Fix-up #includes to remove some -I options.Brian2007-09-112-9/+9
| | | | eg: #include "shader/program.h" and remove -I$(TOP)/src/mesa/program
* Remove ctx->Point._Size and ctx->Line._Width.Brian2007-07-211-1/+3
| | | | | | The clamping for these values depends on whether we're drawing AA or non-AA points, lines. Defer clamping until drawing time. Drivers could compute and keep clamped AA and clamped non-AA values if desired.
* change max anisotropy testChristoff Brill2007-05-171-1/+1
|
* use R200_DEBUG for debug outputChristoff Brill2007-05-171-2/+2
|
* remove CVS/XFree86 keywordsChristoff Brill2007-05-1726-26/+0
|
* bring over recent radeonMakeCurrent fixes for r300 to radeon/r200Roland Scheidegger2007-05-121-1/+0
|
* remove _tnl_arb_vertex_program_stageBrian2007-04-161-1/+0
|
* r128, radeon, r200: Check ctx->WinSysDrawBuffer before calling function that ↵Roland Scheidegger2007-03-271-2/+4
| | | | | | | dereferences it. Same fix as for r300 (which fixed https://bugs.freedesktop.org/show_bug.cgi?id=10417), since it's likely an issue with those drivers too.
* merge from masterBrian2007-03-214-24/+27
|\
| * r200: Simplify r200SetCliprects like radeonSetCliprects in radeon and r300.Alan Swanson2007-03-124-22/+22
| |
| * r200: Adapt cliprect fixes from r300.Alan Swanson2007-03-123-3/+6
| |
* | Merge branch 'origin' into glsl-compiler-1Brian2007-03-091-2/+2
|\| | | | | | | | | | | Conflicts: src/mesa/main/context.c
| * r200 fix broken (by new input handling) fogcoordRoland Scheidegger2007-02-231-2/+2
| |
* | Update DRI drivers for new glsl compiler.Brian2007-02-231-4/+6
|/ | | | | | Mostly: - update #includes - update STATE_* token code
* r200: simplify / unify input map handling for vp and fftnlRoland Scheidegger2007-02-095-334/+141
| | | | | | Use the same input map handling for fftnl and vertex programs. It doesn't enable any new functionality (should make it easy to support per-vertex materials though), but the code is much cleaner.
* disable r200 materials-between-begin-end check if vertex progs are enabledRoland Scheidegger2007-02-031-5/+7
|
* remove now unused vtxfmt stuff from radeon/r200 header filesRoland Scheidegger2007-02-032-128/+3
|
* fix errorneously adding fog state params to all vertex programs...Roland Scheidegger2007-02-031-1/+1
|
* Merge branch 'master' of git+ssh://[email protected]/git/mesa/mesa ↵Keith Whitwell2007-01-1611-84/+355
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into vbo-0.2 Conflicts: src/mesa/array_cache/sources src/mesa/drivers/dri/i965/brw_context.c src/mesa/drivers/dri/i965/brw_draw.c src/mesa/drivers/dri/i965/brw_fallback.c src/mesa/drivers/dri/i965/brw_vs_emit.c src/mesa/drivers/dri/i965/brw_vs_tnl.c src/mesa/drivers/dri/mach64/mach64_context.c src/mesa/main/extensions.c src/mesa/main/getstring.c src/mesa/tnl/sources src/mesa/tnl/t_save_api.c src/mesa/tnl/t_save_playback.c src/mesa/tnl/t_vtx_api.c src/mesa/tnl/t_vtx_exec.c src/mesa/vbo/vbo_attrib.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_save_api.c src/mesa/vbo/vbo_save_draw.c
| * submit vertex weights to make World of Warcraft maybe happy (bug 8250)Roland Scheidegger2006-12-143-2/+19
| | | | | | | | | | | | | | submit the vertex weights to hw, which will enable broken vertex programs errorneously using them to work. Note however that this will only work if glWeight is used, there is no code in mesa at all to deal with weight vertex array (glWeightPointerARB).
| * Make git ignore some more generated files.Michel Dänzer2006-12-061-0/+3
| |
| * fix mixed conventional / generic vertex arrays which caused a wrong array ↵Roland Scheidegger2006-11-303-1/+116
| | | | | | | | order leading to very bogus rendering (for instance WoW intro screen mentioned in #8250).
| * fix a bug in the sanity code when outputting vertex progsRoland Scheidegger2006-11-291-1/+1
| |
| * call Driver.ProgramStringNotify if a ati_fragment_shader changes and pick up ↵Roland Scheidegger2006-11-291-0/+3
| | | | | | | | the change in the r200 driver accordingly.
| * fix segfault with ATI_fs when trying to use a not enabled texture unit (bug ↵Roland Scheidegger2006-11-211-16/+21
| | | | | | | | #9110).
| * Remove use of GetBufferSize (depreciated).Jerome Glisse2006-11-154-29/+44
| |
| * fix vp lockups due to incorrectly set up / emitted attrib inputs.Roland Scheidegger2006-11-051-1/+2
| |
| * fix using VERT_ATTRIB_WEIGHT instead of VERT_BIT_WEIGHT when assigning vp ↵Roland Scheidegger2006-11-051-1/+1
| | | | | | | | inputs.
| * enable generic arrays for r200 hw vertex programs by assigning unused color ↵Roland Scheidegger2006-11-034-27/+143
| | | | | | | | and texture inputs to them. Not widely tested yet. This should eliminate all fallbacks due to vertex programs, except writes to back facing colors, or when exceeding a hw limit (12 temps, 12 attribs etc.).
| * remove setting some driver funcs explicitly to NULL, as they are no longer ↵Roland Scheidegger2006-11-031-4/+0
| | | | | | | | set up later. Thix fixes a segfault in _mesa_Bitmap().
| * casting, type changes to silence warningsBrian Paul2006-11-022-5/+5
| |
| * Remove x/y/width/height parameters from Clear functions.Brian Paul2006-11-011-3/+2
| |
* | remove remaining traces of r200FlushVertices...Roland Scheidegger2006-11-032-2/+0
| |
* | merge current trunk into vbo branchAlan Hourihane2006-11-021-3/+2
| |
* | remove vtxfmt code, switch over to vboKeith Whitwell2006-10-3112-3573/+9
|/