Brian Paul [Thu, 20 Aug 2009 16:28:22 +0000 (10:28 -0600)]
tgsi: handle SOA dependencies for MOV/SWZ
SOA dependencies can happen when a register is used both as a source and
destination and the source is swizzled. For example:
MOV T, T.yxwz; would expand into:
MOV t0, t1;
MOV t1, t0;
MOV t2, t3;
MOV t3, t2;
The second instruction will produce the wrong result since we wrote to t0
in the first instruction. We need to use an intermediate temporary to fix
this.
This will take more work to fix for all TGSI instructions. This seems to
happen with MOV instructions more than anything else so fix that case now
and warn on others.
Fixes piglit glsl-vs-loop test (when not using SSE). See bug 23317.
Brian Paul [Thu, 20 Aug 2009 16:25:42 +0000 (10:25 -0600)]
tgsi: added tgsi_full_instruction::Flags field
Users of the parser can make use of this.
Alex Deucher [Thu, 20 Aug 2009 16:10:42 +0000 (12:10 -0400)]
r600: try and get everything in the draw in one IB
fixes corruption issues with apps like teapot and
geartrain.
Alex Deucher [Thu, 20 Aug 2009 15:33:41 +0000 (11:33 -0400)]
r600: move misc regs from general state
These regs don't use the SET_CONTEXT_REG packet,
so they weren't getting set correctly.
Brian Paul [Thu, 20 Aug 2009 14:10:14 +0000 (08:10 -0600)]
mesa: add GL_DEPTH_STENCIL to glCopyPixels error check
Plus, add a comment about 'type' error checking.
See bug 19087.
Alex Deucher [Thu, 20 Aug 2009 07:19:58 +0000 (03:19 -0400)]
r600: rework emit code
make sure we allocate enough space for relocs
Pauli Nieminen [Wed, 19 Aug 2009 20:11:14 +0000 (23:11 +0300)]
radeon: Update regulary cs processing info from kernel.
This fixes problem that dma buffers were leaking in dri1 mode.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Brian Paul [Wed, 19 Aug 2009 19:17:03 +0000 (13:17 -0600)]
gallium: rename copy/fill_rect utility functions
Brian Paul [Wed, 19 Aug 2009 19:16:41 +0000 (13:16 -0600)]
gallium: fix tags target in Makefile.template
Alex Deucher [Wed, 19 Aug 2009 17:06:53 +0000 (13:06 -0400)]
radeon: fix typo in last dma patch
Eric Anholt [Wed, 19 Aug 2009 16:30:47 +0000 (09:30 -0700)]
intel: Fix failure to commit -a --amend before last push.
Eric Anholt [Wed, 19 Aug 2009 01:48:54 +0000 (18:48 -0700)]
intel: Align cubemap texture height to its padding requirements.
Eric Anholt [Thu, 13 Aug 2009 02:40:27 +0000 (19:40 -0700)]
intel: Align untiled region height to 2 according to 965 docs.
This may or may not be required pre-965, but it doesn't seem unlikely, and
I'd rather be safe.
Pauli Nieminen [Wed, 19 Aug 2009 12:20:15 +0000 (15:20 +0300)]
radeon: Add debug output for dma buffer object numbers.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Wed, 19 Aug 2009 11:47:25 +0000 (14:47 +0300)]
radeon: Fix dma buffer object pool to scale object sizes.
This fixes problems when application is using large vertex arrays for drawing.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Alex Deucher [Wed, 19 Aug 2009 14:31:17 +0000 (10:31 -0400)]
r600: minor cleanup
Brian Paul [Wed, 19 Aug 2009 14:58:38 +0000 (08:58 -0600)]
progs/xdemos: add multictx to .gitignore
José Fonseca [Mon, 17 Aug 2009 16:48:34 +0000 (17:48 +0100)]
tgsi: Add missing include.
(cherry picked from commit
d2787c02c130b1fe20d0c032d468622f2fdaef79)
José Fonseca [Tue, 18 Aug 2009 14:25:33 +0000 (15:25 +0100)]
tgsi: Fix typo in ureg constant creation.
(cherry picked from commit
aa40c9abc7787fdf46cb661a4d0bb8bec513fc63)
Keith Whitwell [Fri, 14 Aug 2009 17:12:08 +0000 (18:12 +0100)]
st/xlib: remove a couple more 'fake' references
Keith Whitwell [Fri, 14 Aug 2009 17:00:49 +0000 (18:00 +0100)]
st/xlib: remove dead ungrab helper
Keith Whitwell [Wed, 19 Aug 2009 11:00:24 +0000 (12:00 +0100)]
tgsi: silence compiler warning
Keith Whitwell [Wed, 19 Aug 2009 11:00:03 +0000 (12:00 +0100)]
tgsi: remove unused function argument
Keith Whitwell [Wed, 19 Aug 2009 10:54:06 +0000 (11:54 +0100)]
tgsi: add missing functionality to support instructions with labels
Could previously emit opcodes with label arguments, but was no way to
patch them with the actual destinations of those labels.
Adds two functions:
ureg_get_instruction_number - to get the id of the next instruction
to be emitted
ureg_fixup_label - to patch an emitted label to point to a given
instruction number.
Need some more complex examples than u_simple_shader, so far this has
only been compile-tested.
Corbin Simpson [Wed, 19 Aug 2009 04:22:30 +0000 (21:22 -0700)]
r300g: Force off ZTOP optimizations for now.
Corbin Simpson [Wed, 19 Aug 2009 01:14:22 +0000 (18:14 -0700)]
r300g: Utilize DONTBLOCK.
Also ALGYRHYTHMS.
Corbin Simpson [Wed, 19 Aug 2009 01:11:46 +0000 (18:11 -0700)]
radeon-gallium: Oh, look, we *do* already support DONTBLOCK.
Well, okay, the kernel doesn't, but that's no excuse for us! :3
Corbin Simpson [Wed, 19 Aug 2009 00:52:03 +0000 (17:52 -0700)]
r300g: Massively cleanup OQ.
Still broken, but compiles cleaner, behaves better, etc.
Corbin Simpson [Wed, 19 Aug 2009 00:49:58 +0000 (17:49 -0700)]
r300g: Add high_second_pipe cap for R3xx chipsets.
This name is totally subject to change if ever I need to separate R3xx
for some other reason.
Corbin Simpson [Wed, 19 Aug 2009 00:47:06 +0000 (17:47 -0700)]
radeon-gallium: Stop using outdated ioctls.
Corbin Simpson [Tue, 18 Aug 2009 18:44:53 +0000 (11:44 -0700)]
Revert "r300-gallium, radeon-gallium: Nuke gb_pipes from orbit."
This reverts commit
6a40d1e9d96f8e8c57bc3bbd6f567cacd4471f59.
Turns out that we *do* need these for OQ after all. Go figure.
Conflicts:
src/gallium/winsys/drm/radeon/core/radeon_r300.h
Brian Paul [Tue, 18 Aug 2009 23:55:27 +0000 (17:55 -0600)]
Merge branch 'mesa_7_5_branch'
Brian Paul [Tue, 18 Aug 2009 23:54:44 +0000 (17:54 -0600)]
egl/xlib: move call to create_configs() after we set the Xdpy field
Brian Paul [Tue, 18 Aug 2009 23:50:43 +0000 (17:50 -0600)]
tgsi/ppc: we don't implement saturation modes yet
Brian Paul [Tue, 18 Aug 2009 23:49:57 +0000 (17:49 -0600)]
tgsi/sse: we don't implement saturation modes yet
Fixes piglit fp-generic tests/shaders/generic/lrp_sat.fp, bug 23316.
Brian Paul [Tue, 18 Aug 2009 23:39:55 +0000 (17:39 -0600)]
mesa: when emitting vertex program fog, set yzw=0,0,1
Fixes piglit fp-fog failure with gallium.
Brian Paul [Tue, 18 Aug 2009 15:42:38 +0000 (09:42 -0600)]
mesa: call FLUSH_CURRENT() for GL_CURRENT_TEXTURE_COORDS query
Pauli Nieminen [Tue, 18 Aug 2009 18:30:51 +0000 (14:30 -0400)]
radeon: balance dma buffer mapping
In radeonRefillCurrentDmaRegion() make sure we
unmap the previous buffer.
Jakob Bornecrantz [Tue, 18 Aug 2009 18:54:41 +0000 (19:54 +0100)]
egl: Create the front texture the properly
Pauli Nieminen [Fri, 14 Aug 2009 11:55:24 +0000 (14:55 +0300)]
r300: Movde debug output from stdout to stderr in copiler.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Dave Airlie [Fri, 26 Jun 2009 05:05:02 +0000 (15:05 +1000)]
r200: make use of DMA buffers for Elts a lot better.
This allows us to return the unused portion of the dma buffer
to the allocator instead of wasting nearly 16k a pop.
Cherry picked and ported to new code by Pauli.
Pauli Nieminen [Fri, 14 Aug 2009 22:56:21 +0000 (01:56 +0300)]
r200: Fix missing offset from elt buffer pointer.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Pauli Nieminen [Fri, 14 Aug 2009 19:10:24 +0000 (22:10 +0300)]
radeon: Optimize memory handling for dma operations.
We keep dma buffer objects in list untill they have been unused for many
draw operations. Current limit of having 100 flushes is just guess for
good performance/memory trade off.
Moving WARN_ONCE macro to common context because it is used in multiple drivers.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
Alex Deucher [Tue, 18 Aug 2009 15:38:54 +0000 (11:38 -0400)]
r300: fix the build on big endian
Brian Paul [Tue, 18 Aug 2009 15:31:22 +0000 (09:31 -0600)]
gallium: improved comments, minor whitespace changes
Chia-I Wu [Fri, 14 Aug 2009 10:26:26 +0000 (18:26 +0800)]
egl: Remove eglhash.c and eglhash.h.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Fri, 14 Aug 2009 10:02:38 +0000 (18:02 +0800)]
egl: Add back handle checking.
Handle checking was done using hash tables. Now that they are gone, we
have to loop over the lists.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Fri, 14 Aug 2009 10:05:19 +0000 (18:05 +0800)]
egl: Make lookup functions static inline.
progs/egl/demo3.c is also changed since it uses an internal function.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Fri, 14 Aug 2009 09:47:00 +0000 (17:47 +0800)]
egl: Remove hash table for displays.
The hash table was used to map a display to a handle. It is simpler to
cast directly.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Fri, 14 Aug 2009 09:29:23 +0000 (17:29 +0800)]
egl: Remove hash table for surfaces.
The hash table was used to map a surface to a handle. It is simpler to
cast directly.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Thu, 13 Aug 2009 05:39:51 +0000 (13:39 +0800)]
egl: _eglCloseDriver should be no-op.
Move drv->API.Terminate call to eglTerminate. Remove
_eglReleaseDisplayResource as drivers are doing it.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Thu, 13 Aug 2009 05:38:24 +0000 (13:38 +0800)]
egl: Some per-driver data should be per-display.
Move some fields of _EGLDriver to _EGLDisplay. It also becomes
unnecessary to pass _EGLDisplay to drivers when _eglMain is called.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Thu, 13 Aug 2009 05:01:48 +0000 (13:01 +0800)]
egl: Change the way drivers are loaded.
Driver is chosen and preloaded when eglGetDisplay is called. Later when
eglInitialize is called, the same driver is matched to initialize the
display. Also, add new, but unused, hooks to EGLDriver to allow a
driver to probe a display or unload itself.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Chia-I Wu [Tue, 11 Aug 2009 09:09:39 +0000 (17:09 +0800)]
egl: Overhaul driver API.
The motivation is so that drivers do not need to look up and check for
bad display, context, and etc. It also becomes unnecessary for drivers
to call the link functions.
This commit makes eglapi.[ch] do the lookup and check. As a result, the
driver API is overhauled, and almost all sources and drivers need
update. The updates are mainly find and replace with human brains.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Dave Airlie [Tue, 18 Aug 2009 10:38:49 +0000 (20:38 +1000)]
r600: fix build
Dave Airlie [Tue, 18 Aug 2009 10:30:15 +0000 (20:30 +1000)]
r300: remove warning introduced with OQ
Dave Airlie [Tue, 18 Aug 2009 10:29:02 +0000 (20:29 +1000)]
radeon/r200: fix build after OQ commits
Dave Airlie [Sun, 16 Aug 2009 08:42:24 +0000 (18:42 +1000)]
r300: OQ rework
Move to common code base so radeon/r200 can add support for this.
Make OQ start a state emitted like all normal state, and make no-tcl
flushing work in proper places.
Really need a generic post emit space reservation mechanism like max_state
so we can reserve some space for the emit
this code passes demos/arbocclude, piglit occlusion query and
glean occlusion query with TCL and NO-TCL on my rv530.
Dave Airlie [Sun, 16 Aug 2009 08:41:23 +0000 (18:41 +1000)]
r300: fix missing BEGIN/END batches
Dave Airlie [Tue, 18 Aug 2009 03:55:12 +0000 (13:55 +1000)]
r300: fix big endian build
Brian Paul [Mon, 17 Aug 2009 23:11:54 +0000 (17:11 -0600)]
gallium: memset() tgsi_exec_machine to all zeros in tgsi_exec_machine_create()
This fixes invalid values for CondStackTop, LoopStackTop, etc.
Brian Paul [Mon, 17 Aug 2009 18:57:37 +0000 (12:57 -0600)]
demos/glsl: remove glutInitWindowPosition() calls
Alex Deucher [Mon, 17 Aug 2009 22:16:38 +0000 (18:16 -0400)]
r600: fix counting error after the last commit
Alex Deucher [Mon, 17 Aug 2009 21:47:27 +0000 (17:47 -0400)]
r600: make sure the number of indices is valid
make sure the number of indices is valid for the
requested prim type. glxgears sends invalid
quad strips with only 2 indices for example.
Alex Deucher [Mon, 17 Aug 2009 19:42:19 +0000 (15:42 -0400)]
radeon: remove RADEON_DEBUG_BO stuff
This stuff was a vestige of the r600 bring up and
now mostly serves to periodically break the build.
Maarten Maathuis [Mon, 17 Aug 2009 12:45:50 +0000 (14:45 +0200)]
nv50: remove a few cases of directly casting struct pipe_context
Maarten Maathuis [Sun, 16 Aug 2009 02:06:44 +0000 (04:06 +0200)]
nv50: borrow some flushing code from the ddx
- This fixes neverball corruption.
- I'm unsure about what we're actually flushing here.
Maarten Maathuis [Sun, 16 Aug 2009 01:20:09 +0000 (03:20 +0200)]
gallium: Make PIPE_TRANSFER_{READ,WRITE,READ_WRITE} bitmask friendly.
Maarten Maathuis [Sat, 15 Aug 2009 23:29:06 +0000 (01:29 +0200)]
nv50: whitespace fixes and deobfuscation
Brian Paul [Mon, 17 Aug 2009 14:27:52 +0000 (08:27 -0600)]
cell: fix incorrect pipe_transfer tests
The value is an enum, not a bitmask.
Jerome Glisse [Mon, 17 Aug 2009 10:46:34 +0000 (12:46 +0200)]
r300: split vbo rendering with big drawarray case
Split vbo rendering when the number of elements requested
by drawarrays is bigger than 65536.
Christoph Bumiller [Mon, 17 Aug 2009 10:26:54 +0000 (12:26 +0200)]
nv50: fix stencil state
It's the front stencil methods that have contiguous offsets,
not the back ones.
Unfortunately the names in the header still have FRONT/BACK
reversed, so I'm using hex values until it gets updated.
Dave Airlie [Mon, 17 Aug 2009 09:09:15 +0000 (19:09 +1000)]
radeon: turn off bo debugging
Maciej Cencora [Sun, 16 Aug 2009 00:04:29 +0000 (02:04 +0200)]
r300: disable ZTOP only when occlusion queries are used
Maciej Cencora [Sat, 15 Aug 2009 23:56:29 +0000 (01:56 +0200)]
Merge branch 'oq'
Pauli Nieminen [Sat, 15 Aug 2009 19:30:15 +0000 (13:30 -0600)]
mesa: Add 2 new demos to .gitignore.
Maarten Maathuis [Fri, 14 Aug 2009 20:25:04 +0000 (22:25 +0200)]
nv50: avoid a NULL-ptr dereference when the pipe context changes
- We cannot assume all state objects are present when the pipe context changes.
Christoph Bumiller [Sat, 15 Aug 2009 14:22:27 +0000 (16:22 +0200)]
nv50: align registers used with TEX to 4
The TEX instruction is passed the first index of a contiguous
range of 4 TEMP registers that contain coordinates / LOD and,
after execution, the texel values.
It seems the first index is required to be a multiple of 4 on
some (older ?) cards.
Maciej Cencora [Thu, 11 Jun 2009 14:11:47 +0000 (16:11 +0200)]
r300: enable ARB_occlusion_query
Supported only on HW with TCL block and with proper radeon drm.
Required minimum radeon drm version is 1.30 or KMS.
Maciej Cencora [Sat, 15 Aug 2009 13:10:29 +0000 (15:10 +0200)]
radeon: add flag for drm OQ support
Maciej Cencora [Thu, 11 Jun 2009 14:10:20 +0000 (16:10 +0200)]
r300: temporary occlusion query hack
Maciej Cencora [Thu, 11 Jun 2009 14:00:03 +0000 (16:00 +0200)]
r300: clear not_flushed OQ list after flush
Maciej Cencora [Sat, 15 Aug 2009 12:35:28 +0000 (14:35 +0200)]
r300/oq: add some debugging info
Maciej Cencora [Thu, 11 Jun 2009 14:13:23 +0000 (16:13 +0200)]
r300: add occlusion queries support
TODO:
- use proper interface for checking if bo is idle when it's available
- disable ZTOP only when needed
- make it work under KMS
Dave Airlie [Sat, 15 Aug 2009 11:34:17 +0000 (21:34 +1000)]
radeon space: realign with drm space check code
Dave Airlie [Sat, 15 Aug 2009 11:18:30 +0000 (21:18 +1000)]
r300: fixup space checks since VBO code
Hopefully this gets the ordering correct so the space checks don't fail.
Dave Airlie [Sat, 15 Aug 2009 10:30:45 +0000 (20:30 +1000)]
r300: add just in case warn I don't think this can actually happen
Dave Airlie [Sat, 15 Aug 2009 10:19:09 +0000 (20:19 +1000)]
radeon: enable vertex splitting for IBs
Based on Maciej's code, just fixed up the alignments for INDX_BUFFER
ut2004 runs AS-Convoy
Roland Scheidegger [Sat, 15 Aug 2009 01:44:02 +0000 (03:44 +0200)]
i965: disable bounds checking on arrays with stride 0
if stride is 0 we cannot use count as max index for bounds checking,
since the hardware will simply return 0 as data for indices failing
bounds check. If stride is 0 any index should be valid hence simply
disable bounds checking in this case.
This fixes bugs introduced with
e643bc5fc7afb563028f5a089ca5e38172af41a8.
Brian Paul [Fri, 14 Aug 2009 20:15:18 +0000 (14:15 -0600)]
progs/demos: print more info in fbotexture.c
Ian Romanick [Fri, 14 Aug 2009 23:27:33 +0000 (16:27 -0700)]
i965: Add support for GL_ARB_seamless_cube_map
Ian Romanick [Fri, 14 Aug 2009 23:26:59 +0000 (16:26 -0700)]
demos/cubemap: Add support for GL_ARB_seamless_cube_map
Ian Romanick [Fri, 14 Aug 2009 08:25:05 +0000 (01:25 -0700)]
Regenerate files for GL_ARB_seamless_cube_map
Ian Romanick [Fri, 14 Aug 2009 08:20:56 +0000 (01:20 -0700)]
Infrastructure for GL_ARB_seamless_cube_map
Ian Romanick [Fri, 14 Aug 2009 06:57:03 +0000 (23:57 -0700)]
Regenerate files for GL_APPLE_flush_buffer_range
Maciej Cencora [Fri, 14 Aug 2009 22:52:44 +0000 (00:52 +0200)]
Merge branch 'vbo_clean'
Conflicts:
src/mesa/drivers/dri/r300/r300_draw.c
Maciej Cencora [Fri, 14 Aug 2009 20:32:57 +0000 (22:32 +0200)]
r300: mark VBO buffer objects as persistent
Maciej Cencora [Fri, 14 Aug 2009 20:48:03 +0000 (22:48 +0200)]
r300: unmap buffer objects after usage
José Fonseca [Fri, 14 Aug 2009 19:05:33 +0000 (20:05 +0100)]
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.
José Fonseca [Fri, 14 Aug 2009 17:47:56 +0000 (18:47 +0100)]
trace: Remove space next to the class attribute of the trace.