Marek Olšák [Sun, 13 Feb 2011 08:26:07 +0000 (09:26 +0100)]
pb_bufmgr_cache: add is_buffer_busy hook and use it instead of non-blocking map
This is cleaner and implementing the hook is optional.
Marek Olšák [Wed, 9 Feb 2011 00:10:11 +0000 (01:10 +0100)]
gallium: notify drivers about possible changes in user buffer contents
Also implement the redefine_user_buffer hook in the drivers.
Marek Olšák [Sun, 26 Dec 2010 03:30:51 +0000 (04:30 +0100)]
st/mesa: set vertex arrays state only when necessary
The vertex arrays state should be set only when (_NEW_ARRAY | _NEW_PROGRAM)
is dirty. This assumes user buffer content is mutable, which will be
sorted out in the next commit. The following usage case should be much faster
now:
for (i = 0; i < 1000; i++) {
glDrawElements(...);
}
Or even:
for (i = 0; i < 1000; i++) {
glSomeStateChangeOtherThanArraysOrProgram(...);
glDrawElements(...);
}
The performance increase from this may be significant in some apps and
negligible in others. It is especially noticable in the Torcs game (r300g):
Before: 15.4 fps
After: 20 fps
Also less looping over attribs in st_draw_vbo yields slight speed-up
in apps with lots of glDraw* calls.
Marek Olšák [Mon, 10 Jan 2011 04:41:47 +0000 (05:41 +0100)]
gallium: remove pipe_vertex_buffer::max_index
This is redundant to pipe_draw_info::max_index and doesn't really fit
in the optimizations I plan.
Marek Olšák [Sun, 9 Jan 2011 08:25:56 +0000 (09:25 +0100)]
gallium: always save and restore vertex buffers using cso_cache
Marek Olšák [Sat, 12 Feb 2011 02:57:19 +0000 (03:57 +0100)]
vbo: bind arrays only when necessary
We don't need to call bind_arrays in the vbo module if the states
which the function depends on are not dirty.
Marek Olšák [Mon, 27 Dec 2010 16:01:25 +0000 (17:01 +0100)]
vbo: notify a driver that we change buffer offsets, strides, etc.
Vinson Lee [Mon, 14 Feb 2011 18:47:58 +0000 (10:47 -0800)]
r300g: Remove redundant initialization.
Remove redundant initialization from commit
3b01b52bd78e3d2fc857feacebd815a5fae00c94 noticed by tstellar.
Alex Deucher [Mon, 14 Feb 2011 18:07:29 +0000 (13:07 -0500)]
r600g: add alignment cases for linear aligned
Matches the drm and ddx.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
José Fonseca [Mon, 14 Feb 2011 10:36:07 +0000 (10:36 +0000)]
draw: Don't define the last two mipmap levels in aa lines.
Some hardware needs to make a seperate copy of all levels to obey
max_lod, so simply do not define the last two levels instead of
clamping.
José Fonseca [Fri, 11 Feb 2011 21:55:29 +0000 (21:55 +0000)]
svga: Set the appropriate flags when creating sampler/surface views.
Marek Olšák [Mon, 14 Feb 2011 09:58:24 +0000 (10:58 +0100)]
r300g: put indices in CS if there's just a few of them and are in user memory
Marek Olšák [Mon, 14 Feb 2011 09:11:50 +0000 (10:11 +0100)]
r300g: cleanup the draw functions
Marek Olšák [Mon, 14 Feb 2011 09:08:59 +0000 (10:08 +0100)]
r300g: do not create a user buffer struct for misaligned ushort indices fallback
Marek Olšák [Mon, 14 Feb 2011 09:05:52 +0000 (10:05 +0100)]
r300g: fix fallback for misaligned ushort indices with num vertices >= 65535
Marek Olšák [Mon, 14 Feb 2011 08:52:15 +0000 (09:52 +0100)]
r300g: consolidate emission of common draw regs
Sedat Dilek [Mon, 14 Feb 2011 08:45:44 +0000 (00:45 -0800)]
docs: Fix typo in GL3.txt
Vinson Lee [Mon, 14 Feb 2011 08:07:07 +0000 (00:07 -0800)]
r300g: Move declaration before code.
Fixes SCons build.
Marek Olšák [Mon, 14 Feb 2011 05:59:00 +0000 (06:59 +0100)]
r600g: do not destroy the original index buffer when translating indices
Because we only translate a subrange of the buffer.
Marek Olšák [Mon, 14 Feb 2011 05:45:55 +0000 (06:45 +0100)]
r300g: emit 3D_LOAD_VBPNTR only when necessary
I thought I couldn't skip emitting this packet in some cases.
Well it looks like I can.
Marek Olšák [Mon, 14 Feb 2011 05:26:56 +0000 (06:26 +0100)]
r300g: fix reference counting when translating indices
Marek Olšák [Mon, 14 Feb 2011 05:03:18 +0000 (06:03 +0100)]
u_index_modify: map buffers with PIPE_TRANSFER_UNSYNCHRONIZED
Marek Olšák [Sun, 13 Feb 2011 23:55:18 +0000 (00:55 +0100)]
r300g: remove the relocation after AARESOLVE_PITCH
Dave Airlie [Sun, 13 Feb 2011 21:52:26 +0000 (07:52 +1000)]
egl_dri2: add nouveau support.
but really wtf? all these PCI IDs need to be ripped out of here, its totally
unscalable and the drivers already have this info so could export it some better way.
tested by Darxus on #wayland.
Marcin Slusarz [Sun, 13 Feb 2011 21:05:28 +0000 (22:05 +0100)]
nv50: fix query assertion
Marek Olšák [Sun, 13 Feb 2011 06:06:22 +0000 (07:06 +0100)]
r300g: correctly determine if a texture is blittable in texture_get_transfer
Marek Olšák [Sat, 12 Feb 2011 23:31:04 +0000 (00:31 +0100)]
r300g: fixup the handle_compare function
Accidentally negated in
685c3262b945a7f0e9f1f3a9409a12fdda08c828.
Marek Olšák [Sat, 12 Feb 2011 22:38:00 +0000 (23:38 +0100)]
r300g: when printing shader linker errors to stderr, report it's not a bug
Marek Olšák [Sat, 12 Feb 2011 22:37:14 +0000 (23:37 +0100)]
r300g: add debug options nozmask and nohiz which disable some hyper-z features
Marek Olšák [Sat, 12 Feb 2011 22:36:48 +0000 (23:36 +0100)]
r300g: typecast void* to unsigned correctly
Eric Anholt [Sat, 12 Feb 2011 20:24:41 +0000 (12:24 -0800)]
dri: Remove the old metaops code which has been superceded by ../common/
Eric Anholt [Sat, 12 Feb 2011 20:23:43 +0000 (12:23 -0800)]
radeon: Remove setup of the old dri/ meta code, which is now unused.
Eric Anholt [Sat, 12 Feb 2011 19:52:06 +0000 (11:52 -0800)]
intel: Remove setup of the old dri/ meta code, which is now unused.
Dave Airlie [Sat, 12 Feb 2011 08:08:04 +0000 (18:08 +1000)]
update GL3.txt for GL_EXT_framebuffer_sRGB status
Tom Stellard [Wed, 9 Feb 2011 09:43:29 +0000 (01:43 -0800)]
r300/compiler: Don't erase sources when converting RGB->Alpha
https://bugs.freedesktop.org/show_bug.cgi?id=34030
NOTE: This is a candidate for the 7.10 branch.
Christopher James Halse Rogers [Thu, 3 Feb 2011 00:19:32 +0000 (11:19 +1100)]
mesa: Optionally build a dricore support library (v3)
This an adds --enable-shared-dricore option to configure. When enabled,
DRI modules will link against a shared copy of the common mesa routines
rather than statically linking these.
This saves about 30MB on disc with a full complement of classic DRI
drivers.
v2: Only enable with a gcc-compatible compiler that handles rpath
Handle DRI_CFLAGS without filter-out magic
Build shared libraries with the full mklib voodoo
Fix typos
v3: Resolve conflicts with talloc removal patches
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
nobled [Thu, 19 Aug 2010 18:06:21 +0000 (14:06 -0400)]
glx: Put null check before use
'dpy' was being checked for null *after* it was already used once.
Also add a null check for psc, and drop gc's redundant initialization.
Marek Olšák [Fri, 11 Feb 2011 06:52:10 +0000 (07:52 +0100)]
r300g: improve function radeon_bo_is_referenced_by_cs
This should prevent calling into radeon_get_reloc when there's
only one context.
Marek Olšák [Sat, 12 Feb 2011 02:04:21 +0000 (03:04 +0100)]
u_vbuf_mgr: fix segfault
max_index could have been less than min_index, which later caused integer
underflow followed by a segfault in memcpy.
Ian Romanick [Fri, 11 Feb 2011 23:19:05 +0000 (15:19 -0800)]
ir_to_mesa: Don't dereference a NULL pointer during copy propagation
The ACP may already be NULL, so don't try to make it NULL again.
This should fix bugzilla #34119.
Ian Romanick [Fri, 11 Feb 2011 23:42:09 +0000 (15:42 -0800)]
glcpp: regerated files
These should have been committed right after
fd1252ab, but they were
missed. Soon, we'll never have to do this again...
Ian Romanick [Fri, 28 Jan 2011 02:19:54 +0000 (18:19 -0800)]
glsl: Regenerate files modified by previous commits
Ian Romanick [Fri, 28 Jan 2011 01:52:19 +0000 (17:52 -0800)]
glsl: Finish out the reduce/reduce error fixes
Track variables, functions, and types during parsing. Use this
information in the lexer to return the currect "type" for identifiers.
Change the handling of structure constructors. They will now show up
in the AST as constructors (instead of plain function calls).
Fixes piglit tests constructor-18.vert, constructor-19.vert, and
constructor-20.vert. Also fixes bugzilla #29926.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Keith Packard [Fri, 8 Oct 2010 00:25:34 +0000 (17:25 -0700)]
glsl: Eliminate reduce/reduce conflicts in glsl grammar
This requires lexical disambiguation between variable and type
identifiers (as most C compilers do).
Signed-off-by: Keith Packard <keithp@keithp.com>
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Benjamin Franzke [Tue, 8 Feb 2011 18:04:15 +0000 (19:04 +0100)]
st/mesa: Fix surfaceless opengl with non-dummy contexts
main/context.c:check_complatible() detecs an incomplete
framebuffer using its pointer, so do not copy it.
This should fix https://bugs.freedesktop.org/show_bug.cgi?id=34042
Brian Paul [Fri, 11 Feb 2011 21:07:43 +0000 (14:07 -0700)]
svga: disable a debug_printf() call
Brian Paul [Fri, 11 Feb 2011 20:56:06 +0000 (13:56 -0700)]
svga: comments and debug code
Brian Paul [Fri, 11 Feb 2011 20:54:15 +0000 (13:54 -0700)]
svga: more comments for need_pipeline field
José Fonseca [Fri, 11 Feb 2011 17:59:36 +0000 (17:59 +0000)]
scons: Need c99 also when cross compiling.
José Fonseca [Fri, 11 Feb 2011 17:38:54 +0000 (17:38 +0000)]
scons: builtin_glsl_function on windows needs bundled getopt.
José Fonseca [Fri, 11 Feb 2011 16:44:13 +0000 (16:44 +0000)]
scons: Try to support building 64bit binaries on 32bit windows.
José Fonseca [Fri, 11 Feb 2011 16:29:01 +0000 (16:29 +0000)]
scons: Fix MSVC 64bit build.
Brian Paul [Fri, 11 Feb 2011 15:40:54 +0000 (08:40 -0700)]
mesa: remove some unused gl_shader fields
Brian Paul [Wed, 9 Feb 2011 20:11:12 +0000 (13:11 -0700)]
draw: tweak AA line texture minimum alpha
AA lines drawn as textured quads look a little better with this change.
Conformance/piglit tests still pass.
Brian Paul [Fri, 11 Feb 2011 18:56:44 +0000 (11:56 -0700)]
svga: add max DMA size check in svga_winsys_buffer_create()
This fixes a problem when trying to use large (2K x 2K) texture
images. We'll DMA the image in chunks.
Patch written by Jose.
Brian Paul [Wed, 9 Feb 2011 16:03:03 +0000 (09:03 -0700)]
svga: remove old comment, remove extra whitespace
Tobias Jakobi [Fri, 11 Feb 2011 18:36:14 +0000 (10:36 -0800)]
glsl: Fix parallel build.
Broken since
e0c1fc32832b66b52e6352ba563288ee48a1face.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
José Fonseca [Fri, 11 Feb 2011 11:22:02 +0000 (11:22 +0000)]
svga: Enable the draw pipeline for smooth lines.
Spotted by Brian Paul.
José Fonseca [Fri, 11 Feb 2011 11:20:54 +0000 (11:20 +0000)]
svga: Don't use the draw pipeline for non-AA lines with a fractional width.
Spotted by Jakob Bornecrantz.
José Fonseca [Fri, 11 Feb 2011 11:14:27 +0000 (11:14 +0000)]
draw: Don't use the pipeline when drawing lines with fractional widths.
Spotted by Jakob Bornecrantz.
José Fonseca [Fri, 11 Feb 2011 11:14:44 +0000 (11:14 +0000)]
llvmpipe: Use u_math's round.
José Fonseca [Fri, 11 Feb 2011 11:11:33 +0000 (11:11 +0000)]
util: Define round and roundf on MSVC.
José Fonseca [Fri, 11 Feb 2011 07:47:34 +0000 (07:47 +0000)]
svga: Stippled lines can also be drawn with triangles.
Marek Olšák [Fri, 11 Feb 2011 04:59:02 +0000 (05:59 +0100)]
r300g: remove unused function prototypes, update copyright
Haitao Feng [Wed, 9 Feb 2011 07:05:11 +0000 (15:05 +0800)]
egl_dri2: rename loader_extension to dri2_loader_extension
Signed-off-by: Haitao Feng <haitao.feng@intel.com>
Benjamin Franzke [Fri, 11 Feb 2011 01:23:38 +0000 (02:23 +0100)]
st/egl wayland: Sync front buffer release
Benjamin Franzke [Fri, 11 Feb 2011 01:23:14 +0000 (02:23 +0100)]
egl_dri2 wayland: Sync front buffer release
Benjamin Franzke [Wed, 9 Feb 2011 20:19:45 +0000 (21:19 +0100)]
egl_dri2: Always unbind old contexts
This fixes __DRIdrawable refcounting.
Binding a context increases their refcount,
so we need to decrease it.
Benjamin Franzke [Wed, 9 Feb 2011 14:30:20 +0000 (15:30 +0100)]
egl_dri2: Use double buffering for window surfaces
Benjamin Franzke [Wed, 9 Feb 2011 14:26:26 +0000 (15:26 +0100)]
st/dri: Set render_buffer in dri_fill_st_visual
st/mesa/st_managaer.c needs render_buffer in order
to determinde which buffer should be rendered to.
Benjamin Franzke [Wed, 9 Feb 2011 19:48:38 +0000 (20:48 +0100)]
st/dri: img_from_renderbuf: Fix incorrect usage of dri_context()
Benjamin Franzke [Wed, 9 Feb 2011 19:42:50 +0000 (20:42 +0100)]
st/dri: Fix surfaceless gl using contexts with previous bound surfaces
ctx->dPriv might be != NULL then draw which is NULL is accessed:
struct dri_drawable *draw = dri_drawable(driDrawPriv);
[..]
if (ctx->dPriv != driDrawPriv) {
ctx->dPriv = driDrawPriv;
draw->texture_stamp = driDrawPriv->lastStamp - 1;
}
Benjamin Franzke [Wed, 9 Feb 2011 19:40:37 +0000 (20:40 +0100)]
st/egl wayland: Set color_format according to wl_visual
Dave Airlie [Fri, 11 Feb 2011 01:47:43 +0000 (11:47 +1000)]
r600g: get correct height alignment
useful for s3tc
Dave Airlie [Fri, 11 Feb 2011 00:45:59 +0000 (10:45 +1000)]
r600g: drop two unused | 0 that are actually in word4 anyways.
these were NOPs anyways.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 10 Feb 2011 04:07:06 +0000 (14:07 +1000)]
r600g: handle 16/32 u/s norm formats properly
add support for the 32-bit types, also fixup the
export setting to handle types with channels > 11 bits properly
Signed-off-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Fri, 11 Feb 2011 02:17:04 +0000 (03:17 +0100)]
r300g: prevent NULL pointer dereference in r300_buffer_create
Should fix:
https://bugs.freedesktop.org/show_bug.cgi?id=33185
Kenneth Graunke [Fri, 11 Feb 2011 01:35:36 +0000 (17:35 -0800)]
mesa: Remove empty header file s_trispan.h.
Kenneth Graunke [Fri, 11 Feb 2011 00:37:56 +0000 (16:37 -0800)]
glsl/Makefile: glcpp doesn't need libglsl.a.
Also, add a 'glcpp' target so you can type 'make glcpp' instead of
'make glcpp/glcpp'.
Marek Olšák [Fri, 11 Feb 2011 01:34:15 +0000 (02:34 +0100)]
r300g: plug a memory leak in winsys
Marek Olšák [Fri, 11 Feb 2011 00:32:44 +0000 (01:32 +0100)]
r300g: remove unneeded code in winsys
We don't need the read/write flags.
Marek Olšák [Fri, 11 Feb 2011 00:18:53 +0000 (01:18 +0100)]
r300g: fix warning
Marek Olšák [Fri, 11 Feb 2011 00:16:06 +0000 (01:16 +0100)]
configure.ac: remove libdrm_radeon dependency for r300g and r600g
Marek Olšák [Thu, 23 Dec 2010 09:40:54 +0000 (19:40 +1000)]
r300g: import the last bits of libdrm and cleanup the whole thing
Based on Dave's branch.
The majority of this commit is a cleanup, mainly renaming things.
There wasn't much code to import, just ioctl calls.
Also done:
- implemented unsynchronized bo_map (important optimization!)
- radeon_bo_is_referenced_by_cs is no longer a refcount hack
- dropped the libdrm_radeon dependency
I'm surprised that this has resulted in less code in the end.
Marek Olšák [Thu, 10 Feb 2011 01:16:58 +0000 (02:16 +0100)]
st/mesa: allow rendering to sRGB textures if EXT_fb_srgb is unsupported
In this case, we always use the corresponding linear format in create_surface,
therefore we should check for linear format support as well.
Ian Romanick [Thu, 10 Feb 2011 19:51:28 +0000 (11:51 -0800)]
i915: Force lowering of all types of indirect array accesses in the FS
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Ian Romanick [Thu, 10 Feb 2011 19:48:59 +0000 (11:48 -0800)]
i915: Calculate partial result to temp register first
Previously the SNE and SEQ instructions would calculate the partial
result to the destination register. This would cause problems if the
destination register was also one of the source registers.
Fixes piglit tests glsl-fs-any, glsl-fs-struct-equal,
glsl-fs-struct-notequal, glsl-fs-vec4-operator-equal,
glsl-fs-vec4-operator-notequal.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
José Fonseca [Thu, 10 Feb 2011 20:53:55 +0000 (20:53 +0000)]
u_upload_mgr: Use PIPE_TRANSFER_FLUSH_EXPLICIT.
This can avoid DMAing the whole buffer when just a fraction was changed.
José Fonseca [Thu, 10 Feb 2011 12:16:26 +0000 (12:16 +0000)]
scons: Disable -mstackrealign on MinGW again.
It's still broken, however it doesn't show up on debug builds.
Kristian Høgsberg [Thu, 10 Feb 2011 15:45:06 +0000 (10:45 -0500)]
configure.ac: Fix typo
Marek Olšák [Thu, 10 Feb 2011 10:20:05 +0000 (11:20 +0100)]
r300g: implement accelerated copy_region for compressed formats
Marek Olšák [Thu, 10 Feb 2011 09:16:21 +0000 (10:16 +0100)]
r300g: add a way to change texture properties arbitrarily
So that we can implement resource_copy on arbitrary data.
Marek Olšák [Thu, 10 Feb 2011 04:36:44 +0000 (05:36 +0100)]
r300g: consolidate buffers and textures to r300_resource
Transfers and create/destroy are still handled separately.
Marek Olšák [Thu, 10 Feb 2011 05:10:55 +0000 (06:10 +0100)]
r300g: simplify WRITE_RELOC API and cleanup
Marek Olšák [Thu, 10 Feb 2011 10:21:27 +0000 (11:21 +0100)]
u_blitter: let the driver check whether there's a recursion
Marek Olšák [Thu, 10 Feb 2011 01:11:38 +0000 (02:11 +0100)]
r300g: use format from pipe_surface instead of pipe_resource
Marek Olšák [Thu, 10 Feb 2011 00:36:23 +0000 (01:36 +0100)]
Revert "r300g: support sRGB colorbuffers"
This partially reverts commit
91eba2567eab9409d94efc3c1f07a4a3731d0047.
Conflicts:
src/gallium/drivers/r300/r300_blit.c
Dave Airlie [Sun, 6 Feb 2011 09:01:58 +0000 (19:01 +1000)]
mesa/st: enable GL_EXT_framebuffer_sRGB
If the formats don't match we need to update the surface with the new
format.
if we can render to SRGB formats, enable the extension
Signed-off-by: Dave Airlie <airlied@redhat.com>
José Fonseca [Tue, 8 Feb 2011 10:26:17 +0000 (10:26 +0000)]
scons: Restrict whole program optimization to release builds.
It just takes forever, so it is inadequate for continuous testings
(i.e., checked and profile build types).
José Fonseca [Wed, 1 Dec 2010 15:41:12 +0000 (15:41 +0000)]
svga: Don't advertise pixel shader addr register support.
It's not fully supported.