Eric Anholt [Mon, 18 Jan 2010 23:12:40 +0000 (15:12 -0800)]
i965: Upload as many VS constants as possible through the push constants.
The pull constants require sending out to an overworked shared unit
and waiting for a response, while push constants are nicely loaded in
for us at thread dispatch time. By putting things we access in every
VS invocation there, ETQW performance improved by 2.5% +/- 1.6% (n=6).
Eric Anholt [Mon, 18 Jan 2010 21:27:47 +0000 (13:27 -0800)]
i965: Allow for variable-sized auxdata in the state cache.
Everything has been constant-sized until now, but constant buffer
handling changes will make us want some additional variable sized
array.
Eric Anholt [Tue, 19 Jan 2010 18:55:21 +0000 (10:55 -0800)]
intel: Use the new DRI2 flush invalidate entrypoint to signal frame done.
Previously for frame throttling we would wait on the first batch after
a swap before emitting another swap, because we had no hook after a
swap was emitted. This meant that if an app managed to squeeze
everything it for a frame had into one batch, it would lock-step with
the GPU. With the swapbuffers changes, we now have the entrypoint we
want.
This takes the WoW intro screen from 25% GPU idle and visibly jerky to
4-5% GPU idle and rather smooth. Other apps such as OpenArena have
run into this problem as well.
Alan Coopersmith [Sun, 17 Jan 2010 04:21:35 +0000 (20:21 -0800)]
Sun compilers now support some gcc __attribute__ values
Sun cc 5.9 and later (__SUNPRO_C >= 0x590) support __attribute__ calls
for aligned, always_inline, noinline, pure, const, and malloc.
This commit includes updates to files that were regenerated by gl_XML.py
after adding the __SUNPRO_C checks to it
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
Alan Coopersmith [Sun, 17 Jan 2010 02:34:23 +0000 (18:34 -0800)]
Check if gcc supports -fvisibility=hidden before adding to CFLAGS
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Brian Paul [Tue, 19 Jan 2010 18:14:00 +0000 (11:14 -0700)]
softpipe: remove redundant assignments
We initialized width/height/depth from pt->width0/height0/depth0 above.
Alex Deucher [Tue, 19 Jan 2010 06:47:04 +0000 (01:47 -0500)]
Alex Deucher [Tue, 19 Jan 2010 06:42:41 +0000 (01:42 -0500)]
r100/r200/r600: check if blitting for given format is supported earlier
based on Maciej's r300 patch.
Alex Deucher [Tue, 19 Jan 2010 06:26:35 +0000 (01:26 -0500)]
r100/r200: add blit support for ARGB4444
Alex Deucher [Tue, 19 Jan 2010 02:58:02 +0000 (21:58 -0500)]
r60: Add relocs for CB_TILE/FRAG
as per
46dc6fd3ed5ef96cda53641a97bc68c3bc104a9f
Corbin Simpson [Tue, 19 Jan 2010 02:05:55 +0000 (18:05 -0800)]
docs: Clarify PIPE_TEXTURE_USAGE_DYNAMIC.
Corbin Simpson [Tue, 19 Jan 2010 01:37:25 +0000 (17:37 -0800)]
docs: Use proper XOR symbol.
Alex Deucher [Tue, 19 Jan 2010 01:56:11 +0000 (20:56 -0500)]
r100: add blit support
Only enabled with KMS.
Alex Deucher [Tue, 19 Jan 2010 01:51:15 +0000 (20:51 -0500)]
r200: add blit support
Only enabled with KMS.
Corbin Simpson [Tue, 19 Jan 2010 01:31:56 +0000 (17:31 -0800)]
docs: Spacing in TGSI formulae.
Some of those still look atrocious. :T
Corbin Simpson [Tue, 19 Jan 2010 01:17:09 +0000 (17:17 -0800)]
docs: Grammar and refs in Rasterizer.
Corbin Simpson [Tue, 19 Jan 2010 01:12:13 +0000 (17:12 -0800)]
docs: Cleanup Rasterizer a bit.
I'm getting better at this, I think.
Corbin Simpson [Tue, 19 Jan 2010 00:40:39 +0000 (16:40 -0800)]
docs: Fix terms and refs.
I fail at Sphinx-style ReST.
Corbin Simpson [Mon, 18 Jan 2010 23:24:51 +0000 (15:24 -0800)]
docs: Slowly keep fleshing out more info.
Corbin Simpson [Mon, 18 Jan 2010 23:09:30 +0000 (15:09 -0800)]
docs: PIPE_TEXTURE_USAGE info.
From IRC with Jakob.
Eric Anholt [Mon, 11 Jan 2010 17:23:41 +0000 (09:23 -0800)]
i965: Clean up constbuf handling by splitting reladdr/non-reladdr loads.
The codepaths in the function were almost entirely different.
Eric Anholt [Mon, 11 Jan 2010 16:45:58 +0000 (08:45 -0800)]
i965: Only set up the stack register if it's going to get used.
Eric Anholt [Sat, 9 Jan 2010 10:03:13 +0000 (02:03 -0800)]
i965: Fix loads of non-relative-addr constants after a reladdr load.
Fixes piglit vp-arl-constant-array-huge-overwritten.
Christoph Bumiller [Mon, 18 Jan 2010 20:37:33 +0000 (21:37 +0100)]
nv50: fix constant vtxattr methods
This function was untested, sorry.
Christoph Bumiller [Mon, 18 Jan 2010 18:52:34 +0000 (19:52 +0100)]
nv50: make instanced drawing work with edge flags
And fix some obvious mistakes introduced in the
previous instancing commit.
Christoph Bumiller [Mon, 18 Jan 2010 15:22:59 +0000 (16:22 +0100)]
nv50: cannot exit shaders on a control flow instruction
Fixes lockup triggered by this ingenious shader:
1: CALL :3
2: END
3: BGNSUB ...
Marcin Slusarz [Mon, 18 Jan 2010 15:12:38 +0000 (16:12 +0100)]
nv50: fix nv50_program->immd memory leak
Michal Krol [Mon, 18 Jan 2010 18:07:44 +0000 (19:07 +0100)]
tgsi: Fix behaviour of dimension index.
The dimension index always addresses the second-dimension axis.
Michal Krol [Mon, 18 Jan 2010 13:01:40 +0000 (14:01 +0100)]
tgsi: Allow TEMPORARY registers as indirect address into source operands.
Michal Krol [Mon, 18 Jan 2010 11:11:05 +0000 (12:11 +0100)]
tgsi: Add ureg_DECL_immediate_block_uint().
Allows declaring a contiguous block of immediates. Useful for
relative indexing.
Brian Paul [Mon, 18 Jan 2010 18:06:55 +0000 (11:06 -0700)]
glsl: remove __inline directive
It makes no difference with gcc -O3, for example.
Brian Paul [Mon, 18 Jan 2010 17:43:33 +0000 (10:43 -0700)]
st/mesa: updated comments and whitespace
Marcin Slusarz [Sun, 17 Jan 2010 22:47:53 +0000 (14:47 -0800)]
st/mesa: fix memory leak in st_translate_mesa_program
Signed-off-by: Brian Paul <brianp@vmware.com>
Alex Deucher [Mon, 18 Jan 2010 16:21:19 +0000 (11:21 -0500)]
r600: fix some warnings
Jerome Glisse [Mon, 18 Jan 2010 14:32:24 +0000 (15:32 +0100)]
r600: Update default state size to account for the new relocation
the new relocation for CB_COLOR0_FRAG & CB_COLOR0_TILE add 4
dwords to the default command stream. Increase the prediction
default size to take this into account
Jerome Glisse [Mon, 18 Jan 2010 10:05:50 +0000 (11:05 +0100)]
r6xx/r7xx: emit relocation for FRAG & TILE buffer
FRAG & TILE buffer are unused but still they need
to be associated with a valid relocation so that
userspace can't try to abuse them to overwritte
GART and then try to write anywhere in system
memory.
Andre Maasikas [Mon, 18 Jan 2010 10:42:10 +0000 (12:42 +0200)]
r600: fix shadow_ambient shader
rtype enums are different, DST_REG_OUTPUT got SRC_REG_CONSTANT in some
shaders and produced invalid output/hang
as TEX output is temp register always set out src to SRC_REG_TEMPORARY
Corbin Simpson [Mon, 18 Jan 2010 10:30:49 +0000 (02:30 -0800)]
radeong: Don't allocate HW BOs for constantbufs.
We have broken 1000 FPS. Hell yes.
Heavily inspired by Marek's patch, but using pipebuffer instead of
a roll-your-own malloc.
Marek Olšák [Sun, 17 Jan 2010 18:21:03 +0000 (19:21 +0100)]
r300g: fix polygon offset
As per classic r300.
Not sure why glean/polygonOffset still fails, but we do emit the same register
values as in classic.
Marek Olšák [Sun, 17 Jan 2010 13:54:35 +0000 (14:54 +0100)]
r300g: fix vertex data swizzle
Marek Olšák [Sat, 16 Jan 2010 00:45:10 +0000 (01:45 +0100)]
r300g: do not align compressed textures to a tile size
Chia-I Wu [Mon, 18 Jan 2010 09:12:50 +0000 (17:12 +0800)]
st/egl_g3d: Clean up for x11_drawable_get_depth.
Fix a wrong comment and remove an unnecessary #include.
Corbin Simpson [Mon, 18 Jan 2010 08:37:21 +0000 (00:37 -0800)]
dri: Add an MSAA-enabled factor to DRI configs.
4 samples should be enough for GLUT to be satisfied, and I think most
of the HW that does any MSAA, can do it.
Note that any pipe that doesn't multisample can just ignore the
corresponding flag in pipe_rasterizer_state.
Corbin Simpson [Mon, 18 Jan 2010 08:36:04 +0000 (00:36 -0800)]
dri: Properly calculate number of modes for MSAA.
Split from the next patch for bisection purposes only.
Corbin Simpson [Mon, 18 Jan 2010 08:35:11 +0000 (00:35 -0800)]
radeong: Check DRM version, and report stats.
Corbin Simpson [Sun, 17 Jan 2010 23:57:26 +0000 (15:57 -0800)]
radeong: Use vram_size instead of vram_visible.
The kernel will decide on its own what to give us.
Chia-I Wu [Mon, 18 Jan 2010 08:30:07 +0000 (16:30 +0800)]
progs/egl: Pass EGLDisplay to eglCopyBuffers.
X Display was wrongly passed to eglCopyBuffers.
Chia-I Wu [Mon, 18 Jan 2010 07:28:13 +0000 (15:28 +0800)]
st/egl_g3d: Add support for eglCopyBuffers.
It uses a slow path to copy the render buffer of the surface to the
target pixmap. We might be able to create a pipe context for
EGLDisplay's use and use a blitter context for the purpose. It is left
for a future consideration.
Chia-I Wu [Mon, 18 Jan 2010 07:49:20 +0000 (15:49 +0800)]
st/egl_g3d: Add is_pixmap_supported to native display interface.
The function may be used to support, for example,
EGL_MATCH_NATIVE_PIXMAP and EGL_KHR_image_pixmap.
Chia-I Wu [Mon, 18 Jan 2010 04:11:15 +0000 (12:11 +0800)]
st/egl_g3d: Update validate to use an attachment mask.
A validate call asks for the buffers of a native surface. Using a mask
to represent the interested buffers is more intuitive. It also rules
out corner cases such as a single attachment being listed multiple
times.
Chia-I Wu [Mon, 18 Jan 2010 04:05:25 +0000 (12:05 +0800)]
st/vega: Fix window resizing with egl_g3d.
egl_g3d calls st_set_framebuffer_surface on window resize. It updates
the renderbuffer's geometry and makes st_resize_framebuffer a no-op.
This commit improves the no-op check a little bit. It can do better
after gallium-fb-dimensions is merged.
Chia-I Wu [Fri, 15 Jan 2010 09:52:10 +0000 (17:52 +0800)]
st/vega: Call screen->update_buffer instead of winsys->update_buffer.
This removes the last reference to winsys and is per mesa/st.
Chia-I Wu [Fri, 15 Jan 2010 09:59:16 +0000 (17:59 +0800)]
tgsi: Add missing semantic name in text parser.
This time, INSTANCEID is missing...
Jakob Bornecrantz [Mon, 18 Jan 2010 00:07:24 +0000 (00:07 +0000)]
cso: Add set_vertex_samplers function
Jakob Bornecrantz [Mon, 18 Jan 2010 00:04:48 +0000 (00:04 +0000)]
softpipe: Fix leak in vbuf draw module
Christoph Bumiller [Sun, 17 Jan 2010 16:37:55 +0000 (17:37 +0100)]
nv50: implement instanced drawing
Too bad we don't have hw array divisors or a method for
setting startInstance.
Jakob Bornecrantz [Sun, 17 Jan 2010 14:18:26 +0000 (14:18 +0000)]
softpipe: Move st/python's malloc winsys to softpipe
Users of softpipe can still specify thier own winsys
but now there is a default one also that uses malloc.
This allows the malloc winsys to be shared with other
users of softpipe.
Jakob Bornecrantz [Sun, 17 Jan 2010 16:24:53 +0000 (16:24 +0000)]
st/xlib: Make glXGetProcAddressARB visible
Jakob Bornecrantz [Sun, 17 Jan 2010 14:40:49 +0000 (14:40 +0000)]
gallium: Support swig "compiler" in p_compiler.h
Jakob Bornecrantz [Sun, 17 Jan 2010 12:21:56 +0000 (12:21 +0000)]
i965g: Link against drm_intel instead of drm_radeon
Corbin Simpson [Sun, 17 Jan 2010 09:13:45 +0000 (01:13 -0800)]
r300g: Check for bogus texture targets.
Marek Olšák [Sun, 17 Jan 2010 03:49:07 +0000 (04:49 +0100)]
r300g: fix the rasterization of secondary color
When the secondary color is used, the primary color must always be rasterized
regardless of whether it is used or not.
Marek Olšák [Sun, 17 Jan 2010 03:41:51 +0000 (04:41 +0100)]
r300g: fix vertex colors with 8 bits per channel
The piglit BGRA tests pass now.
Marek Olšák [Sun, 17 Jan 2010 01:25:50 +0000 (02:25 +0100)]
r300g: simplify is_format_supported
Marek Olšák [Sat, 9 Jan 2010 18:19:44 +0000 (19:19 +0100)]
r300g: output texture debug messages if only RADEON_DEBUG=tex is set
Marek Olšák [Sat, 9 Jan 2010 17:38:54 +0000 (18:38 +0100)]
r300g: move debug flags into r300_screen
Marek Olšák [Fri, 15 Jan 2010 23:48:53 +0000 (00:48 +0100)]
r300g: disable the MIP filter for NPOT textures
Safety first.
Marek Olšák [Fri, 15 Jan 2010 23:56:33 +0000 (00:56 +0100)]
r300g: fix the CS size when emitting invariant state
Alan Coopersmith [Sun, 17 Jan 2010 08:55:39 +0000 (00:55 -0800)]
radeon_compiler: include main/compiler.h for compiler portability macros
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Corbin Simpson [Sun, 17 Jan 2010 02:16:26 +0000 (18:16 -0800)]
r300g: Stop using indices.
Sorry, it was a good game, but it just doesn't work.
Corbin Simpson [Sun, 17 Jan 2010 01:45:34 +0000 (17:45 -0800)]
r300g: Respect fill modes in indices fallback.
Keith Whitwell [Sat, 16 Jan 2010 21:11:01 +0000 (21:11 +0000)]
util: add generic ringbuffer utitilty
Chia-I Wu [Sat, 16 Jan 2010 17:16:11 +0000 (18:16 +0100)]
gallium: Fix uninitialized instance divisor and index.
Christoph Bumiller [Sat, 16 Jan 2010 16:58:35 +0000 (17:58 +0100)]
nv50: fix tile flags for scanout tex usage
Christoph Bumiller [Sat, 16 Jan 2010 14:39:32 +0000 (15:39 +0100)]
nv50: handle all and more system values
Christoph Bumiller [Sat, 16 Jan 2010 12:25:55 +0000 (13:25 +0100)]
nv50: hook up geometry programs
Christoph Bumiller [Sat, 16 Jan 2010 10:36:03 +0000 (11:36 +0100)]
nv50: support for geometry programs in nv50_program
Christoph Bumiller [Sat, 16 Jan 2010 15:57:34 +0000 (16:57 +0100)]
nv50: get access to primitive input space
Vertex data in geometry programs is located in p[] space.
The base address in p[] for vertex i is located in vertex
attribute space, i.e. a[i << 2].
This means p[] is always accessed with an address register,
and I had to to mess with their allocation once again.
Also fixes negative offsets e.g. CONST[ADDR[0].x - 3].
Alex Deucher [Sat, 16 Jan 2010 13:45:08 +0000 (08:45 -0500)]
r600: remove stray END_BATCH in blit code
Jakob Bornecrantz [Sat, 16 Jan 2010 09:30:28 +0000 (09:30 +0000)]
draw: Fix memory leak in gs code
Dave Airlie [Sat, 16 Jan 2010 09:28:45 +0000 (19:28 +1000)]
i965g: make xorg state tracker build i965g_drv.so
don't make modesetting_drv.so anymore
Alex Deucher [Sat, 16 Jan 2010 03:56:55 +0000 (22:56 -0500)]
r600: improve blit support
- fill in more src/dst formats
- disable depth copies for now
- set proper data formats in render target regs
- fill in additional default state
The swizzles on some of the less used mesa formats
are probably wrong.
Andre Maasikas [Sat, 16 Jan 2010 02:23:31 +0000 (21:23 -0500)]
r600: add initial blit support
Alex Deucher [Fri, 15 Jan 2010 21:41:27 +0000 (16:41 -0500)]
r600: add r600_blit.c
Unfinished.
Patrice Mandin [Fri, 15 Jan 2010 21:29:13 +0000 (22:29 +0100)]
nouveau: nv30: Remove useless variables fs, txp. Also do not change txf, as bit 13 is in the texture format
Signed-off-by: Patrice Mandin <patmandin@gmail.com>
Michal Krol [Fri, 15 Jan 2010 16:43:04 +0000 (17:43 +0100)]
util: Handle FORMAT_Z32_FLOAT in util_pack_z().
Michal Krol [Fri, 15 Jan 2010 16:42:38 +0000 (17:42 +0100)]
util: Handle the remaining formats in pipe_put_tile_rgba().
Michal Krol [Fri, 15 Jan 2010 16:42:07 +0000 (17:42 +0100)]
util: Fix encoding for R8G8B8A8_UNORM formats and friends.
Michal Krol [Fri, 15 Jan 2010 13:05:04 +0000 (14:05 +0100)]
tgsi: Add ureg_property_gs_input_prim().
Michal Krol [Fri, 15 Jan 2010 12:32:55 +0000 (13:32 +0100)]
tgsi: Add ureg_src_dimension().
Michal Krol [Mon, 11 Jan 2010 19:53:28 +0000 (20:53 +0100)]
regress: Add .gitgnore for *.png files.
Michal Krol [Fri, 15 Jan 2010 11:20:39 +0000 (12:20 +0100)]
draw: Add missing header include.
Roland Scheidegger [Fri, 15 Jan 2010 17:25:14 +0000 (18:25 +0100)]
gallium: document set_constant_buffer
Roland Scheidegger [Fri, 15 Jan 2010 17:09:45 +0000 (18:09 +0100)]
Merge branch 'gallium-noconstbuf'
Conflicts:
src/gallium/drivers/softpipe/sp_draw_arrays.c
src/mesa/state_tracker/st_draw_feedback.c
Roland Scheidegger [Fri, 15 Jan 2010 16:55:42 +0000 (17:55 +0100)]
gallium: remove set_edgeflags from docs
Brian Paul [Fri, 15 Jan 2010 16:02:52 +0000 (09:02 -0700)]
configs: remove -ansi from linux-debug
-ansi implies -std=c89 but that conflicts with the -std=c99 flag
which is also provided.
Allows the r300g driver to compile.
Michal Krol [Fri, 15 Jan 2010 10:40:03 +0000 (11:40 +0100)]
tgsi: Fix sanity checks for indirect registers.
Chia-I Wu [Fri, 15 Jan 2010 10:10:54 +0000 (18:10 +0800)]
st/egl_g3d: Avoid validation upon buffer swap or flush frontbuffer.
With screen->update_buffer being hooked, leave the job to the state
trackers.
Chia-I Wu [Fri, 15 Jan 2010 09:45:52 +0000 (17:45 +0800)]
st/egl_g3d: Hook to update_buffer of the pipe screen.
It is a notification from the client APIs that the surface size might
have changed.
Chia-I Wu [Fri, 15 Jan 2010 09:39:49 +0000 (17:39 +0800)]
st/egl_g3d: Always override flush_frontbuffer.
Instead of letting the native displays install their own version of
flush_frontbuffer, always override the callback with a version that
calls the flush_frontbuffer of the native surface.