aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/r300
Commit message (Collapse)AuthorAgeFilesLines
* radeons: use dp4 for position invariant vertex programsRoland Scheidegger2009-06-191-0/+2
| | | | | | | | Fixes #22181. R200 requires this since DP4 is used in hw tnl mode. R300 prefers it (should be faster due to no instruction dependencies), but both methods should be correct (when sw tcl is used though, MUL/MAD might be faster). Probably doesn't make much difference for R100 since vertex progs are executed in software anyway, but let's just keep it the same there too.
* r300: use vbo_split_prims to split up large vertex buffers.Dave Airlie2009-06-182-2/+11
| | | | This lets ut2004 avoid hitting the elt warning.
* r300: don't emit vap index offset on r5xx hw when using csJerome Glisse2009-06-171-1/+1
| | | | | | | vap index offset is programmed to 0 by the kernel, it would add work to kernel checker to allow userspace programming of this so it's now disallowed with CS on KMS.
* r300: add support for EXT_texture_sRGBMaciej Cencora2009-06-123-0/+7
| | | | Tested with glean/texture_srgb and wine/d3d9 tests on RV535
* radeon/r200/r300: fix max texture levels assertDave Airlie2009-06-121-4/+1
| | | | use the actual value set in the context
* r300: fix VAP setupMaciej Cencora2009-06-111-5/+6
| | | | If GL context had e.g. tex0, tex2 and fog the VAPOutputCntl1 returned 0x104 instead of 0x124 - that meaned we're sending only 8 texcoords (instead of 12) which ended up in GPU hang.
* r300: fix for SW TCL pathMaciej Cencora2009-06-111-1/+1
| | | | | We shouldn't use i variable for SWTCL_OVM_TEX because textures doesn't have to be enabled in "packed" order. We could have tex1,tex3 and fog which would receive 7,9,8 OVM locations instead of 6,7,8.
* r300: don't send unused attributes for SW TCL pathMaciej Cencora2009-06-111-14/+14
|
* r300: send only RS_IP_* regs that we are going to useMaciej Cencora2009-06-112-10/+4
|
* r300: fix RS setup when no colors and textures are sent to FPMaciej Cencora2009-06-111-4/+6
| | | | RS_COL_FMT field is part of RS_IP_* reg not RS_INST_*
* r300: r500 fragment program fixesMaciej Cencora2009-06-111-12/+11
| | | | | | | | | - when rewriting per component negate swizzle, first instruction should get not negated source - KIL instruction ignores swizzles TODO: - tex instructions does not support saturation - tex instructions cannot read from consant memory
* r300: fix a GPU lock upMaciej Cencora2009-06-113-21/+24
| | | | | | Sending from VAP more texture coordinates than RS expects results in GPU hang. Fixes BumpSelfShadow from DirectX8 SDK.
* r300: fix vertex program bugMaciej Cencora2009-06-111-6/+10
| | | | | | If the vertex program didn't write position attribute, the position invariant function would add necessary instructions, but the vertex position would be overwritten by artificial outputs insts added to satisfy fragment program requirements. Fixes "whole screen is gray" problem for HW TCL path in sauerbraten when shaders are enabled, and whole slew of wine d3d9 tests.
* r300: move some code for easier debuggingMaciej Cencora2009-06-111-17/+37
|
* r300: print vertex program when debugging is enabledMaciej Cencora2009-06-111-3/+14
|
* r300: fix output register allocation for vertex shadersMaciej Cencora2009-06-111-9/+19
| | | | If the vertex program wrote secondary color without primary color, the secondary color output register index would be 0 which resulted in overwriting vertex position in some cases.
* r300: hw doesn't support saturation for tex instructionsMaciej Cencora2009-06-111-0/+3
|
* r300: fix indexed primitive rendering when using memory managerJerome Glisse2009-06-111-2/+2
|
* r300: make sure indexed rendering doesn't try to use more than the num of ↵Jerome Glisse2009-06-101-0/+7
| | | | | | | | vertices When with memory manager we need to make sure the GPU won't try to access beyond vertex buffer size, do so by enforcing that the maximun index is the last vertex of the buffer.
* r300: fix regression caused by 056bc77547c304021a0faf204897ed238a5cf424Maciej Cencora2009-06-081-0/+1
| | | | Fixes GPU hangs in software TCL path
* r300: Endianness fixes for recent vertex path changes.Michel Dänzer2009-06-072-9/+37
| | | | Signed-off-by: Maciej Cencora <[email protected]>
* r300: vertex array stride = 0 means that data are tightly packed in the arrayMaciej Cencora2009-06-071-5/+8
|
* r300: GL_(U)SHORT and GL_(U)BYTE with < 4 components can also be HW acceleratedMaciej Cencora2009-06-071-20/+29
| | | | | | | Also when index format is GL_UBYTE, convert it to GL_USHORT not GL_UINT. Fix license header too. Reported by: Nicolai Hähnle <[email protected]>
* r300: remove unused codeMaciej Cencora2009-06-074-55/+1
|
* r300: rewrite vertex setup for software T&L path using functions from ↵Maciej Cencora2009-06-074-209/+54
| | | | software TCL path
* r300: prepare for some code duplication removalMaciej Cencora2009-06-072-5/+15
|
* r300: enable EXT_vertex_array_bgra extensionsMaciej Cencora2009-06-071-0/+1
|
* r300: add hw accelerated support for different vertex data formatsMaciej Cencora2009-06-077-57/+485
|
* r300: prepare for different vertex data type supportMaciej Cencora2009-06-076-120/+116
|
* r300: fixup vertex attributes orderingMaciej Cencora2009-06-071-17/+10
| | | | Always allocate the vertex program input registers in the same order as the vertex attributes are passed in vertex arrays.
* r300: always pass 4 color components to RS unitMaciej Cencora2009-06-071-42/+6
| | | | Even if we don't pass all 4 color components to vertex shader unit, the vertex program can generate the missing components.
* r300: when using cs path emit scissor in the cmdbufferJerome Glisse2009-05-284-0/+43
|
* r300: rework texture offset emission.Jerome Glisse2009-05-281-7/+13
|
* radeon: Remove drawable & readable from radeon_dri_mirrorNicolai Hähnle2009-05-242-16/+18
| | | | | | | The duplication of state data caused a crash due to double-free on destruction of context, because a variable wasn't correctly null'ed out. Signed-off-by: Nicolai Hähnle <[email protected]>
* radeon: set max texture sizeJerome Glisse2009-05-201-0/+4
| | | | | This still need some work to actually report somethings reasonable if no memory manager is available.
* radeon: fix DRI1 cmd streamJerome Glisse2009-05-182-17/+18
|
* r300: cleanup vertex program related functionsMaciej Cencora2009-05-166-216/+164
| | | | | | | | | | | - move vertex program related functions to r300_vertprog.c - use _mesa_bitcount instead of self-made bit_count function - remove duplicated field in r300_vertex_shader_fragment.body union - rename r300_vertex_shader_fragment to r300_vertex_shader_hw_code - rename r300_vertex_program field native to error - remove unnecessary r300_vertex_shader_state structure - remove unused r300_vertex_program and r300_vertex_program_cont fields - remove disabled code
* r300: minor code movementMaciej Cencora2009-05-161-21/+21
|
* r300: more cleanupMaciej Cencora2009-05-161-27/+13
| | | | | - remove unnecessary r300TranslateFragmentShader call from r300UpdateShaderStates (it is already called in r300UpdateShaders) - remove unnecessary null ptr checks
* r300: move some code to common pathMaciej Cencora2009-05-162-21/+12
|
* r300: rename functionsMaciej Cencora2009-05-167-8/+8
| | | | Be consistent with function naming: use Setup/Emit names for functions that modify hardware state
* r300: move forward declarations to where they belongMaciej Cencora2009-05-162-4/+5
|
* r300: software fallbacking handling rewriteMaciej Cencora2009-05-167-99/+208
| | | | | Until now falling back to software rasterizer worked only for TCL enabled cards. For non TCL cards we used to plug our rendering functions in r300InitSwtcl, and we had never restored original functions for software rasterizer.
* r300: r300EmitArrays should never failMaciej Cencora2009-05-163-10/+4
|
* r300: remove unnecessary switch casesMaciej Cencora2009-05-161-8/+0
|
* r300: further cleanupMaciej Cencora2009-05-167-85/+82
| | | | | | | - move extensions init into seperate function - move options handling into seperate function - create new structure to hold options values - use context->options.hw_tcl_enabled field instead of global hw_tcl_on and future_hw_tcl_on variables
* r300: don't send now forbidden register to kernel when with memory managerJerome Glisse2009-05-143-16/+67
|
* Don't use an alpha texture format for GLX_TEXTURE_FORMAT_RGB_EXTOwen W. Taylor2009-05-131-1/+4
| | | | | | | | In r300SetTexBuffer2(), if the passed in text glx_texture_format is GLX_TEXTURE_FORMAT_RGB_EXT, then we should use an RGB-only texture format, even if the DRI buffer has four channels. https://bugs.freedesktop.org/show_bug.cgi?id=21609
* Remove subpixel offset from viewportOwen W. Taylor2009-05-131-10/+4
| | | | | | | | Remove an eigth-pixel offset of the viewport inherited from R100 code. This seems not to be necessary and causes blurring when sampling textures 1:1. https://bugs.freedesktop.org/show_bug.cgi?id=20340
* radeon: glReadBuffer set _NEW_BUFFERS, not _NEW_PIXELJerome Glisse2009-05-121-2/+2
| | | | | This was broken with last merge see 62043b27575c378c027251316421e4699f461108 for explanations