| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Blits between sRGB and linear formats should happen in linear color space.
This fixes piglit fbo/fbo-srgb-blit.
|
|
|
|
|
|
|
|
|
|
| |
The drivers have been changed so that they behave as if all of the flags
were set. This is already implicit in most hardware drivers and required
for multiple contexts.
Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag
to decide whether flush_frontbuffer should be called.
New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement.
|
| |
|
|
|
|
| |
So that they don't have the driver-specific param and return type.
|
|
|
|
|
|
|
| |
The framebuffer cache flush should be implicit when calling
set_framebuffer_state.
There is no need to flush the command stream either.
|
|
|
|
|
| |
This is a follow-up to the ARB_sync patch for st/mesa and completes
the ARB_sync implementation.
|
|
|
|
|
|
| |
The ServerWaitSync implementation matches Intel's driver.
The extension is advertised when pipe_screen::fence_finish is set.
|
| |
|
|
|
|
| |
softpipe passes all tests.
|
|
|
|
|
|
|
|
| |
st->user_vb[attr] was always pointing to the same user vb, regardless
of the value of attr. Together with reverting the temporary workaround
for bug 34378, and a fix in the svga driver, this fixes googleearth on svga.
Signed-off-by: Thomas Hellstrom <[email protected]>
|
|
|
|
|
|
| |
This fixes:
state_tracker/st_format.c:401:st_pipe_format_to_mesa_format:
Assertion `0' failed.
|
| |
|
|
|
|
|
|
|
|
| |
ARB_instanced_arrays is a subset of D3D9.
ARB_draw_instanced is a subset of D3D10.
The point of this change is to allow D3D9-level drivers to enable
ARB_instanced_arrays without ARB_draw_instanced.
|
|
|
|
|
|
|
|
| |
Because the format can be changed to UNORM in a surface.
This fixes:
state_tracker/st_atom_framebuffer.c:163:update_framebuffer_state:
Assertion `framebuffer->cbufs[i]->texture->bind & (1 << 1)' failed.
|
|
|
|
|
|
|
|
|
|
| |
this fixes fbo-generatemipmap-formats rgtc and s3tc in NPOT mode
with softpipe.
r600g fails to even get level 0 correct so have to look into that
a bit further.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
| |
This was always converting to 8-bit per channel unsigned formats,
which isn't suitable for RGTC signed formats, this special cases
those two formats and converts to floats for those.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
| |
With proper fallback formats.
|
|
|
|
| |
Remove the previous workaround for instanced drawing and implement it correctly.
|
| |
|
|
|
|
| |
this just adds a format check + format conversion.
|
| |
|
|
|
|
|
|
| |
7.9 & 7.10 candidate
Signed-off-by: Jerome Glisse <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is because the HW doesn't always store a 1D array like a
2D texture, it more likely stores it like 2D texture (i.e.
alignments etc).
This means we upload each slice separately and let the driver
work out where to put it.
this might break nvc0 as I can't test it, I have only nv50 here.
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Ptr can be very well NULL, so when there are two arrays, with one having
offset 0 (and thus NULL Ptr), and the other having a non-zero offset,
the non-zero value is taken as minimum (because of !low_addr ? start ...).
On 32-bit systems, this somehow works. On 64-bit systems, it leads to crashes.
Signed-off-by: Marek Olšák <[email protected]>
|
|
|
|
|
|
|
|
|
| |
If two buffers had the same stride where one buffer is a user one and
the other is a vbo, it was considered to be one interleaved buffer,
resulting in incorrect rendering and crashes.
This patch makes sure that the interleaved buffer is either user or vbo,
not both.
|
|
|
|
| |
This fixes the game Tiny and Big.
|
|
|
|
|
|
|
|
|
|
|
| |
When clearing a GL_LUMINANCE_ALPHA buffer, for example, we need to convert
the clear color (R,G,B,A) to (R,R,R,A). We were doing this for texture border
colors but not renderbuffers. Move the translation function to st_format.c
and share it.
This fixes the piglit fbo-clear-formats test.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
|
|
|
|
|
| |
Part of the fix for piglit fbo-clear-formats
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
|
|
|
|
|
|
|
| |
If finalizing a non-POW mipmapped texture with an odd-sized base texture
image we were allocating the wrong size of gallium texture (off by one).
Need to be more careful about computing the base texture image size.
This fixes https://bugs.freedesktop.org/show_bug.cgi?id=34463
|
| |
|
|
|
|
| |
This is part of the fix for https://bugs.freedesktop.org/show_bug.cgi?id=34463
|
|
|
|
| |
NOTE: This is a candidate for the 7.9 and 7.10 branches
|
|
|
|
|
| |
Can't invert the region if copying between surfaces with different
orientations.
|
|
|
|
|
|
|
|
|
|
|
| |
This is a temporary workaround. It fixes sauerbrauten with shaders enabled.
I guess we might be changing vertex attribs somewhere and not updating
the appropriate dirty flags, therefore we can't rely on them for now.
Or maybe we need to make this state dependent on some other flags too.
More info:
https://bugs.freedesktop.org/show_bug.cgi?id=34378
|
|
|
|
|
| |
If doing a simple non-overlapping glCopyPixels with no per-fragment ops
we can use pipe_context::resource_copy_region().
|
| |
|
|
|
|
|
|
|
|
|
| |
If we hit the pipe_get/put_tile() path for setting up the glCopyPixels
texture we were passing the wrong x/y position to pipe_get_tile().
The x/y position was already accounted for in the pipe_get_transfer()
call so we were effectively reading from 2*readX, 2*readY.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
| |
|
|
|
|
| |
No longer used.
|
|
|
|
|
| |
And set a reasonable buffer usage flag everywhere instead of
just PIPE_USAGE_DEFAULT.
|
|
|
|
|
|
|
|
|
| |
If the underlying transfer had a stride wider for hw alignment reasons,
the mipmap generation would generate badly strided images.
this fixes a few problems I found while testing r600g with s3tc
Signed-off-by: Dave Airlie <[email protected]>
|
|
|
|
|
|
| |
Broken since d5062fb3a315c46d77d5c954a3e3c14be1907d33.
I wonder why this code is hidden behind #if by default.
|
|
|
|
|
|
|
|
|
|
|
| |
render targets if ARB_draw_buffers_blend is not supported
If EXT_draw_buffers2 is supported but ARB_draw_buffers_blend isn't
_mesa_BlendFuncSeparateEXT only sets up the blend equation and function for the
first render target. This patch makes sure that update_blend doesn't try to use
the data from other rendertargets in such cases.
Signed-off-by: Brian Paul <[email protected]>
|
|
|
|
| |
Also implement the redefine_user_buffer hook in the drivers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This is redundant to pipe_draw_info::max_index and doesn't really fit
in the optimizations I plan.
|
| |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
In this case, we always use the corresponding linear format in create_surface,
therefore we should check for linear format support as well.
|