~ubuntu-branches/ubuntu/natty/mesa/natty-proposed

« back to all changes in this revision

Viewing changes to src/mesa/drivers/dri/r600/r700_assembler.h

  • Committer: Bazaar Package Importer
  • Author(s): Robert Hooker, Robert Hooker, Christopher James Halse Rogers
  • Date: 2010-09-14 08:55:40 UTC
  • mfrom: (1.2.28 upstream)
  • Revision ID: james.westby@ubuntu.com-20100914085540-m4fpl0hdjlfd4jgz
Tags: 7.9~git20100909-0ubuntu1
[ Robert Hooker ]
* New upstream git snapshot up to commit 94118fe2d4b1e5 (LP: #631413)
* New features include ATI HD5xxx series support in r600, and a vastly
  improved glsl compiler.
* Remove pre-generated .pc's, use the ones generated at build time
  instead.
* Remove all references to mesa-utils now that its no longer shipped
  with the mesa source.
* Disable the experimental ARB_fragment_shader option by default on
  i915, it exposes incomplete functionality that breaks KDE compositing
  among other things. It can be enabled via driconf still. (LP: #628930).

[ Christopher James Halse Rogers ]
* debian/patches/04_osmesa_version.diff:
  - Refresh for new upstream
* Bugs fixed in this release:
  - Fixes severe rendering corruption in Unity on radeon (LP: #628727,
    LP: #596292, LP: #599741, LP: #630315, LP: #613694, LP: #599741).
  - Also fixes rendering in gnome-shell (LP: #578619).
  - Flickering in OpenGL apps on radeon (LP: #626943, LP: #610541).
  - Provides preliminary support for new intel chips (LP: #601052).
* debian/rules:
  - Update configure flags to match upstream reshuffling.
  - Explicitly remove gallium DRI drivers that we don't want to ship.
* Update debian/gbp.conf for this Maverick-specific packaging
* libegl1-mesa-dri-x11,kms: There are no longer separate kms or x11 drivers
  for EGL, libegl1-mesa-drivers now contains a single driver that provides
  both backends.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
#define _R700_ASSEMBLER_H_
29
29
 
30
30
#include "main/mtypes.h"
31
 
#include "shader/prog_instruction.h"
 
31
#include "program/prog_instruction.h"
32
32
 
33
33
#include "r700_chip.h"
34
34
#include "r700_shaderinst.h"
108
108
typedef enum SrcRegisterType 
109
109
{
110
110
    SRC_REG_TEMPORARY      = 0,
111
 
    SRC_REG_INPUT          = 1,
 
111
    SRC_REG_GPR            = 1,
112
112
    SRC_REG_CONSTANT       = 2,
113
113
    SRC_REG_ALT_TEMPORARY  = 3,
114
114
    SRC_REC_LITERAL        = 4, 
414
414
        unsigned char ucVP_AttributeMap[VERT_ATTRIB_MAX];
415
415
        unsigned char ucVP_OutputMap[VERT_RESULT_MAX];
416
416
 
417
 
    unsigned char * pucOutMask;
418
 
 
419
417
        //-----------------------------------------------------------------------------------
420
418
        // flow control members
421
419
        //-----------------------------------------------------------------------------------
464
462
    GLuint             uiCurInst;
465
463
    GLubyte SamplerUnits[MAX_SAMPLERS];
466
464
    GLboolean   bR6xx;
 
465
 
 
466
    /* TODO : merge bR6xx */
 
467
    GLuint  unAsic;
 
468
 
467
469
    /* helper to decide which type of instruction to assemble */
468
470
    GLboolean is_tex;
469
471
    /* we inserted helper intructions and need barrier on next TEX ins */ 
489
491
 
490
492
    GLuint    shadow_regs[R700_MAX_TEXTURE_UNITS];
491
493
 
 
494
    GLboolean bUseMemConstant;
 
495
    GLuint    kcacheUsed;        
 
496
 
492
497
} r700_AssemblerBase;
493
498
 
494
499
//Internal use
512
517
 
513
518
unsigned int r700GetNumOperands(GLuint opcode, GLuint nIsOp3);
514
519
 
 
520
unsigned int EG_GetNumOperands(GLuint opcode, GLuint nIsOp3);
 
521
 
515
522
GLboolean IsTex(gl_inst_opcode Opcode);
516
523
GLboolean IsAlu(gl_inst_opcode Opcode);
517
524
int check_current_clause(r700_AssemblerBase* pAsm,
535
542
                                       GLboolean           normalize,
536
543
                                       GLenum              format,
537
544
                                       VTX_FETCH_METHOD  * pFetchMethod);
 
545
 
 
546
GLboolean EG_assemble_vfetch_instruction(r700_AssemblerBase* pAsm,
 
547
                                       GLuint              destination_register,                                                                       
 
548
                                       GLenum              type,
 
549
                                       GLint               size,
 
550
                                       GLubyte             element,
 
551
                                       GLuint              _signed,
 
552
                                       GLboolean           normalize,
 
553
                                       GLenum              format,
 
554
                                       VTX_FETCH_METHOD  * pFetchMethod);
 
555
//-----------------------
 
556
 
538
557
GLboolean cleanup_vfetch_instructions(r700_AssemblerBase* pAsm);
539
558
GLuint gethelpr(r700_AssemblerBase* pAsm);
540
559
void resethelpr(r700_AssemblerBase* pAsm);
553
572
void initialize(r700_AssemblerBase *pAsm);
554
573
GLboolean assemble_alu_src(R700ALUInstruction*  alu_instruction_ptr,
555
574
                           int                  source_index,
556
 
                           PVSSRC*              pSource,
557
 
                           BITS                 scalar_channel_index);
 
575
                           PVSSRC*              pSource,                           
 
576
                           BITS                 scalar_channel_index,
 
577
                           r700_AssemblerBase  *pAsm);
 
578
 
558
579
GLboolean add_alu_instruction(r700_AssemblerBase* pAsm,
559
580
                              R700ALUInstruction* alu_instruction_ptr,
560
581
                              GLuint              contiguous_slots_needed);
582
603
GLboolean check_vector(r700_AssemblerBase* pAsm,
583
604
                       R700ALUInstruction* alu_instruction_ptr);
584
605
GLboolean assemble_alu_instruction(r700_AssemblerBase *pAsm);
585
 
GLboolean next_ins(r700_AssemblerBase *pAsm);
586
606
 
587
607
GLboolean pops(r700_AssemblerBase *pAsm, GLuint pops);
588
608
GLboolean jumpToOffest(r700_AssemblerBase *pAsm, GLuint pops, GLint offset);
626
646
GLboolean assemble_TRIG(r700_AssemblerBase *pAsm, BITS opcode);
627
647
 
628
648
GLboolean assemble_SLT(r700_AssemblerBase *pAsm);
 
649
GLboolean assemble_SSG(r700_AssemblerBase *pAsm);
629
650
GLboolean assemble_STP(r700_AssemblerBase *pAsm);
630
651
GLboolean assemble_TEX(r700_AssemblerBase *pAsm);
631
652
GLboolean assemble_XPD(r700_AssemblerBase *pAsm);
664
685
                     COMPILED_SUB * pCompiledSub,                                            
665
686
                     GLshort uOutReg,
666
687
                     GLshort uNumValidSrc);
 
688
GLboolean EG_add_ps_interp(r700_AssemblerBase* pAsm);
667
689
 
668
690
//Interface
669
691
GLboolean AssembleInstr(GLuint uiFirstInst,