summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600
Commit message (Collapse)AuthorAgeFilesLines
* gallium/tgsi: Move interpolation info from tgsi_declaration to a separate token.Francisco Jerez2012-05-111-3/+3
| | | | | | Move Interpolate, Centroid and CylindricalWrap from tgsi_declaration to a separate token -- they only make sense for FS inputs and we need room for other flags in the top-level declaration token.
* gallium/tgsi: Split sampler views from shader resources.Francisco Jerez2012-05-111-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit splits the current concept of resource into "sampler views" and "shader resources": "Sampler views" are textures or buffers that are bound to a given shader stage and can be read from in conjunction with a sampler object. They are analogous to OpenGL texture objects or Direct3D SRVs. "Shader resources" are textures or buffers that can be read and written from a shader. There's no support for floating point coordinates, address wrap modes or filtering, and, unlike sampler views, shader resources are global for the whole graphics pipeline. They are analogous to OpenGL image objects (as in ARB_shader_image_load_store) or Direct3D UAVs. Most hardware is likely to implement shader resources and sampler views as separate objects, so, having the distinction at the API level simplifies things slightly for the driver. This patch introduces the SVIEW register file with a declaration token and syntax analogous to the already existing RES register file. After this change, the SAMPLE_* opcodes no longer accept a resource as input, but rather a SVIEW object. To preserve the functionality of reading from a sampler view with integer coordinates, the SAMPLE_I(_MS) opcodes are introduced which are similar to LOAD(_MS) but take a SVIEW register instead of a RES register as argument.
* gallium/drivers: handle TGSI_OPCODE_CEILChristoph Bumiller2012-05-091-0/+2
|
* r600g: Handle TGSI_OPCODE_CEIL (v2)Kai Wasserbäch2012-05-091-3/+3
| | | | | | | v2: Enabled CEIL on Cayman too. Signed-off-by: Kai Wasserbäch <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: Remove the EXPORT_REG instructionTom Stellard2012-05-081-8/+2
|
* radeon/llvm: Use a custom inserter to lower RESERVE_REGTom Stellard2012-05-081-6/+2
|
* radeon/llvm: add suport for cube texturesVadim Girlin2012-05-081-22/+0
| | | | Signed-off-by: Vadim Girlin <[email protected]>
* radeon/llvm: add support for TXQ/TXF/DDX/DDY instructionsVadim Girlin2012-05-081-0/+4
| | | | Signed-off-by: Vadim Girlin <[email protected]>
* radeon/llvm: add support for VertexID, InstanceIDVadim Girlin2012-05-081-0/+34
| | | | Signed-off-by: Vadim Girlin <[email protected]>
* radeon/llvm: use bitcasts for integersVadim Girlin2012-05-081-1/+3
| | | | | | | | | We're using float as default type, so basically for every instruction that wants other types for dst/src operands we need to perform the bitcast to/from default float. Currently bitcast produces no-op MOV instruction, will be eliminated later. Signed-off-by: Vadim Girlin <[email protected]>
* r600g: Fix out of tree builds that use the LLVM backendTom Stellard2012-05-071-1/+1
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=49567
* r600g/llvm: Mask write of pred_inst in llvm_if()Tom Stellard2012-05-031-0/+1
|
* r600g: Print integer values of literal constants in shader dumpsTom Stellard2012-05-031-1/+2
|
* r600g: Add support for reading BREAK_LOGICALZ_i32 from bytestreamTom Stellard2012-05-032-0/+5
|
* r600g: Fix the evergreen offset/end register definitionsTom Stellard2012-05-021-9/+5
|
* r600g: fixed the bug with VTX fetches in TEX clauses for evergreenAdam Rak2012-05-021-7/+6
| | | | Signed-off-by: Tom Stellard <[email protected]>
* r600g: Add support for reading vertex fetches from bytestreamTom Stellard2012-05-021-0/+37
| | | | Signed-off-by: Tom Stellard <[email protected]>
* r600g: Add support for reading native instructions from the LLVM bytestreamTom Stellard2012-05-021-0/+10
| | | | Signed-off-by: Tom Stellard <[email protected]>
* r600g: Add FC_NATIVE instructionTom Stellard2012-05-023-0/+20
| | | | | | | This is a pseudo instruction that enables the LLVM backend to encode instructions and pass it through r600_bytecode_build() Signed-off-by: Tom Stellard <[email protected]>
* r600g: bypass alpha for integer types (v2)Dave Airlie2012-05-024-2/+18
| | | | | | | | | | | | This moves the alpha test control to derived state and disables alpha testing for integer fbs. fbo-blending test in piglit gets further when we do this (not a pass but less fail). v2: drop the fb_sx_alpha_test_control Signed-off-by: Dave Airlie <[email protected]>
* r600g: make r600_buffer_transfer_unmap a no-opMarek Olšák2012-04-291-7/+1
| | | | It's a no-op already in the winsys.
* winsys/radeon: simplify buffer map/unmap functionsMarek Olšák2012-04-298-28/+28
| | | | | The idea is not to use pb_map and pb_unmap wrappers, calling straight into the winsys.
* autoconf: pass -Wall to automakeDylan Noblesmith2012-04-291-2/+2
| | | | | | | And fix these warning that appear at autoreconf time: "`:='-style assignments are not portable" v2: Fix the recently-converted-to-automake r600.
* r600g: move updating vertex buffer state into set_vertex_buffersMarek Olšák2012-04-242-11/+7
|
* gallium: make user vertex buffers optionalMarek Olšák2012-04-246-22/+7
| | | | | | | | | | | This couldn't be split because it would break bisecting. Summary: * r300g,r600g: stop using u_vbuf * r300g,r600g: also report that the FIXED vertex type is unsupported * u_vbuf: refactor for use in the state tracker * cso: wire up u_vbuf with cso_context * st/mesa: conditionally install u_vbuf
* r600g: don't share u_upload_mgr with u_vbuf, create its ownMarek Olšák2012-04-244-4/+15
|
* u_vbuf: make use of the new CAPs to determine what to doMarek Olšák2012-04-241-6/+12
| | | | | | | This adds the ability to initialize u_vbuf_caps before creating u_vbuf itself. It will be useful for determining if u_vbuf should be used or not. Also adapt r300g and r600g.
* u_vbuf: remove u_vbuf_resourceMarek Olšák2012-04-249-61/+60
|
* gallium: add user_ptr in pipe_resourceMarek Olšák2012-04-241-0/+2
| | | | I need to access the pointer in st/mesa when I only have pipe_resource.
* u_vbuf: override draw_vboMarek Olšák2012-04-241-2/+0
|
* u_vbuf: override create/bind/destroy_vertex_elements_stateMarek Olšák2012-04-243-8/+2
|
* u_vbuf: override set_vertex_buffersMarek Olšák2012-04-244-8/+10
|
* u_vbuf: override set_index_bufferMarek Olšák2012-04-242-6/+12
| | | | This makes u_vbuf_mgr call the driver instead of the other way around.
* r600g/automake: add $ARCH_FLAGS and $OPT_FLAGSMarek Olšák2012-04-231-0/+2
| | | | Reviewed-by: Tom Stellard <[email protected]>
* r600g: init vars to silence warningsBrian Paul2012-04-231-2/+2
|
* r600g: Add hooks for the LLVM shader compilerTom Stellard2012-04-233-2/+304
| | | | | | | | | The LLVM backend can now be enabled for r600g by using the --enable-r600-llvm-compiler configure flag. If you configure with this flag, you can still use the default compiler by setting the envrionment variable R600_USE_LLVM=0 Reviewed-by: Alex Deucher <[email protected]>
* r600g: Add TGSI->LLVM implementation v2Tom Stellard2012-04-232-0/+330
| | | | | | v2: Add case for ARUBA in r600_llvm_gpu_string() Reviewed-by: Alex Deucher <[email protected]>
* r600g: fix gpr number calculationVadim Girlin2012-04-231-0/+3
| | | | | Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Tom Stellard <[email protected]>
* r600g: split add_reg into add_reg and add_reg_bo variantsDave Airlie2012-04-234-215/+193
| | | | | | | | | This shaves 2k off the final dri.so, and removes lots of pointless NULL, 0 passing. most like pointless - but it looked nicer to me. Signed-off-by: Dave Airlie <[email protected]>
* r600g: enable GLSL130 on all cardsDave Airlie2012-04-221-3/+2
| | | | | | | | Alexandre Demers sent me some cayman results with no major problems. I'll rip out the env var in a week or so. Signed-off-by: Dave Airlie <[email protected]>
* r600g: enable dual src blending on r600 cardsDave Airlie2012-04-211-1/+1
| | | | | | tested on my rv610 and it passes the tests with no hangs. Signed-off-by: Dave Airlie <[email protected]>
* r600g: enable GLSL 1.30 for r600 classDave Airlie2012-04-211-1/+1
| | | | | | | | | Full piglit run on my rv610 with no regressions. This only leaves cayman, however my cayman is resisting my attempt to get through a full piglit run. Signed-off-by: Dave Airlie <[email protected]>
* r600: enable glsl 1.30 on r700Dave Airlie2012-04-211-1/+1
| | | | | | | | I've done a piglit run on rv740 and confirmed no regressions. We don't get GL3 on r700 due to transform feedback being busted still. Signed-off-by: Dave Airlie <[email protected]>
* r600g: report INTEGERS cap if glsl130 is on.Dave Airlie2012-04-201-1/+2
| | | | | | | | | This cap is used by u_blitter to decide if it can use integers in vertex data. fixes some crashes with glsl130 in piglit Signed-off-by: Dave Airlie <[email protected]>
* r600g: enable glsl 130 on evergreen.Dave Airlie2012-04-201-1/+3
| | | | | | | | | | | | I've done a piglit run on my SUMO machine and I see no regressions. Lots of things to fix (skip->fail), but hey maybe we can fix them if we can see them. I'll try and work my way across r600,700,cayman sometime if nobody else gets to them. Signed-off-by: Dave Airlie <[email protected]>
* r600g: disable I2F conversion for InstanceID if integers are supportedVadim Girlin2012-04-201-11/+16
| | | | | | Signed-off-by: Vadim Girlin <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600g: store glsl_feature_level in the r600_screenVadim Girlin2012-04-202-1/+3
| | | | | | Signed-off-by: Vadim Girlin <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* r600g: Use automake to generate MakefileTom Stellard2012-04-172-17/+17
|
* r600g: disable dual-src hangs evergreen for some reason.Dave Airlie2012-04-141-1/+1
| | | | | | This did work previously, so I've broken something. Signed-off-by: Dave Airlie <[email protected]>
* r600g: initial r600 dual src blending supportDave Airlie2012-04-135-16/+44
| | | | | | survives piglit with no regressions on rv610/evergreen Signed-off-by: Dave Airlie <[email protected]>