Age | Commit message (Collapse) | Author |
|
These texture formats (like R16G16B16A16_UNORM) were untested until now
because st/mesa doesn't use them. I am testing this with a hacked st/mesa
here.
|
|
Blending with DST_ALPHA is undefined. SRC_ALPHA works, though.
I bet some other formats have similar limitations too.
|
|
The hw swizzles have been obtained by a brute force approach,
and only C0 and C2 are stored in UV88, the other channels are
ignored.
R16G16 is going to be a lot trickier.
|
|
NOTE: This is a candidate for the 7.9 branch.
|
|
This is actually a format translator fix.
|
|
NOTE: This is a candidate for the 7.9 branch.
|
|
The driver actually creates a 3D texture aligned to POT and does all
the magic with texture coordinates in the fragment shader. It first
emulates REPEAT and MIRRORED wrap modes in the fragment shader to get
the coordinates into the range [0, 1]. (already done for 2D NPOT)
Then it scales them to get the coordinates of the NPOT subtexture.
NPOT textures are now less of a lie and we can at least display
something meaningful even for the 3D ones.
Supported wrap modes:
- REPEAT
- MIRRORED_REPEAT
- CLAMP_TO_EDGE (NEAREST filtering only)
- MIRROR_CLAMP_TO_EDGE (NEAREST filtering only)
- The behavior of other CLAMP modes is undefined on borders, but they usually
give results very close to CLAMP_TO_EDGE with mirroring working perfectly.
This fixes:
- piglit/fbo-3d
- piglit/tex3d-npot
|
|
Some random stuff I had here.
1) Fixed some misleading comments.
2) Removed fake_npot, since it's redundant.
3) lower_texture_rect -> scale_texcoords
4) Reordered and reindented some TEX transform code.
|
|
MACRO_SWITCH on R350 appears to use the RV350 mode by default. Who knew?
NOTE: This is a candidate for the 7.9 branch.
|
|
Fixes this GCC warning.
r300_state.c: In function 'r300_create_rs_state':
r300_state.c:925: warning: unused variable 'i'
|
|
Move GB_ENABLE to derived rs state, and find sprite coord for the correct
generic and enable the tex coord for that generic.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Silence this GCC warning.
r300_state_derived.c: In function 'r300_update_derived_state':
r300_state_derived.c:578: warning: 'r' may be used uninitialized in this function
r300_state_derived.c:578: note: 'r' was declared here
|
|
TX_BORDER_COLOR should be formatted according to the texture format.
Also the interaction with ARB_texture_swizzle should be fixed too.
NOTE: This is a candidate for the 7.9 branch.
|
|
|
|
Make libr300compiler.a a PHONY target so that this library will always be
built. This fixes the problem of libr300compiler.a not being updated
when r300g is being built and r300c is not.
This is a candidate for the Mesa 7.9 branch.
|
|
handled elsewhere now.
thanks to Droste on irc for pointing out the fix
|
|
These can be used by other drivers, like r600g.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=29901
|
|
This fixes a DRM deadlock in the cubestorm xscreensaver, because somehow
there must not be 2 different BOs relocated in one CS if both BOs back
the same handle. I was told it is impossible to happen, but apparently
it is not, or there is something else wrong.
|
|
Changes in v3:
- Also change trace, which I forgot about
Changes in v2:
- No longer adds tessellation shaders
Currently each shader cap has FS and VS versions.
However, we want a version of them for geometry, tessellation control,
and tessellation evaluation shaders, and want to be able to easily
query a given cap type for a given shader stage.
Since having 5 duplicates of each shader cap is unmanageable, add
a new get_shader_param function that takes both a shader cap from a
new enum and a shader stage.
Drivers with non-unified shaders will first switch on the shader
and, within each case, switch on the cap.
Drivers with unified shaders instead first check whether the shader
is supported, and then switch on the cap.
MAX_CONST_BUFFERS is now per-stage.
The geometry shader cap is removed in favor of checking whether the
limit of geometry shader instructions is greater than 0, which is also
used for tessellation shaders.
WARNING: all drivers changed and compiled but only nvfx tested
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=29901
https://bugs.freedesktop.org/show_bug.cgi?id=30132
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=29901
|
|
|
|
|
|
radeon_cs_space_check flushes the pipe context on failure, retries
the validation, and returns -1 if it fails again. At that point, there is
nothing we can do, so let's skip draw operations instead of getting stuck
in an infinite loop.
This code path ideally should never be hit.
|
|
This a leftover probably and is unnecessary, since we flush u_upload_mgr
in r300_flush.
|
|
The r300 compiler can now emit instructions that select from the presubtract
source. A peephole optimization has been added to convert instructions like:
ADD Temp[0].x, none.1, -Temp[1].x into the INV (1 - src0) presubtract
operation.
|
|
This should fix bogus reports "Too many temporaries." and maybe some others.
|
|
This reverts commit 5cdedaaf295acae13ac10feeb3143d83bc53d314.
https://bugs.freedesktop.org/show_bug.cgi?id=30002
Conflicts:
src/gallium/drivers/r300/r300_texture.c
|
|
|
|
|
|
Those are:
- dead-code elimination
- constant folding
- peephole (mainly copy propagation)
- register allocation
There are some bugs which I need to track down.
Also fix up the descriptions of all the debug options.
|
|
|
|
|
|
|
|
|
|
|
|
Removing another function duplication in u_blitter.
|
|
Even though MIP filtering is not supported, we can bind an arbitrary mipmap
as the zero mipmap level.
NPOT textures now follow GL_TEXTURE_BASE_LEVEL and GL_TEXTURE_MIN_LOD.
This fixes piglit/fbo-copyteximage.
|
|
|
|
As per docs.
|
|
Include p_compiler.h for uint32_t and boolean symbols.
|
|
Include p_format.h for enum pipe_format symbol.
Fixes r300g build.
|
|
|
|
It had no impact on correctness, though.
Reported by Vinson Lee.
|
|
|
|
Update all drivers to use draw_set_index_buffer,
draw_set_mapped_index_buffer, and draw_vbo. Remove
draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
|
|
Is this hackish or is this the correct way to use point_quad_rasterization?
Copied from nvfx.
|
|
|
|
|