ofs | hex dump | ascii |
---|
0000 | 2f 2a 0a 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 49 6e 74 65 6c 20 43 6f 72 70 2e 20 20 32 | /*..Copyright.(C).Intel.Corp...2 |
0020 | 30 30 36 2e 20 20 41 6c 6c 20 52 69 67 68 74 73 20 52 65 73 65 72 76 65 64 2e 0a 20 49 6e 74 65 | 006...All.Rights.Reserved...Inte |
0040 | 6c 20 66 75 6e 64 65 64 20 54 75 6e 67 73 74 65 6e 20 47 72 61 70 68 69 63 73 20 28 68 74 74 70 | l.funded.Tungsten.Graphics.(http |
0060 | 3a 2f 2f 77 77 77 2e 74 75 6e 67 73 74 65 6e 67 72 61 70 68 69 63 73 2e 63 6f 6d 29 20 74 6f 0a | ://www.tungstengraphics.com).to. |
0080 | 20 64 65 76 65 6c 6f 70 20 74 68 69 73 20 33 44 20 64 72 69 76 65 72 2e 0a 20 0a 20 50 65 72 6d | .develop.this.3D.driver.....Perm |
00a0 | 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f | ission.is.hereby.granted,.free.o |
00c0 | 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e | f.charge,.to.any.person.obtainin |
00e0 | 67 0a 20 61 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 | g..a.copy.of.this.software.and.a |
0100 | 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 | ssociated.documentation.files.(t |
0120 | 68 65 0a 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c 20 69 6e 20 74 68 65 20 | he.."Software"),.to.deal.in.the. |
0140 | 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e | Software.without.restriction,.in |
0160 | 63 6c 75 64 69 6e 67 0a 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 | cluding..without.limitation.the. |
0180 | 72 69 67 68 74 73 20 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 | rights.to.use,.copy,.modify,.mer |
01a0 | 67 65 2c 20 70 75 62 6c 69 73 68 2c 0a 20 64 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 | ge,.publish,..distribute,.sublic |
01c0 | 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 | ense,.and/or.sell.copies.of.the. |
01e0 | 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 0a 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 | Software,.and.to..permit.persons |
0200 | 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 | .to.whom.the.Software.is.furnish |
0220 | 65 64 20 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 0a 20 74 68 65 20 66 6f 6c | ed.to.do.so,.subject.to..the.fol |
0240 | 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 20 0a 20 54 68 65 20 61 62 6f 76 65 20 | lowing.conditions:....The.above. |
0260 | 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 | copyright.notice.and.this.permis |
0280 | 73 69 6f 6e 20 6e 6f 74 69 63 65 20 28 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 0a 20 6e 65 78 74 | sion.notice.(including.the..next |
02a0 | 20 70 61 72 61 67 72 61 70 68 29 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e | .paragraph).shall.be.included.in |
02c0 | 20 61 6c 6c 20 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 0a 20 70 6f 72 74 | .all.copies.or.substantial..port |
02e0 | 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 20 0a 20 54 48 45 20 53 4f 46 | ions.of.the.Software.....THE.SOF |
0300 | 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f | TWARE.IS.PROVIDED."AS.IS",.WITHO |
0320 | 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 0a 20 45 58 50 52 45 53 | UT.WARRANTY.OF.ANY.KIND,..EXPRES |
0340 | 53 20 4f 52 20 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 | S.OR.IMPLIED,.INCLUDING.BUT.NOT. |
0360 | 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 0a 20 4d 45 | LIMITED.TO.THE.WARRANTIES.OF..ME |
0380 | 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 | RCHANTABILITY,.FITNESS.FOR.A.PAR |
03a0 | 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d | TICULAR.PURPOSE.AND.NONINFRINGEM |
03c0 | 45 4e 54 2e 0a 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 20 43 4f 50 59 | ENT...IN.NO.EVENT.SHALL.THE.COPY |
03e0 | 52 49 47 48 54 20 4f 57 4e 45 52 28 53 29 20 41 4e 44 2f 4f 52 20 49 54 53 20 53 55 50 50 4c 49 | RIGHT.OWNER(S).AND/OR.ITS.SUPPLI |
0400 | 45 52 53 20 42 45 0a 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 | ERS.BE..LIABLE.FOR.ANY.CLAIM,.DA |
0420 | 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 20 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 | MAGES.OR.OTHER.LIABILITY,.WHETHE |
0440 | 52 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 0a 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 | R.IN.AN.ACTION..OF.CONTRACT,.TOR |
0460 | 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 20 4f 55 | T.OR.OTHERWISE,.ARISING.FROM,.OU |
0480 | 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 0a 20 57 49 54 48 20 54 48 45 20 | T.OF.OR.IN.CONNECTION..WITH.THE. |
04a0 | 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 | SOFTWARE.OR.THE.USE.OR.OTHER.DEA |
04c0 | 4c 49 4e 47 53 20 49 4e 20 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 20 0a 20 2a 2a 2a 2a 2a 2a | LINGS.IN.THE.SOFTWARE.....****** |
04e0 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
0500 | 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ******************************** |
0520 | 2f 0a 20 2f 2a 0a 20 20 2a 20 41 75 74 68 6f 72 73 3a 0a 20 20 2a 20 20 20 4b 65 69 74 68 20 57 | /../*...*.Authors:...*...Keith.W |
0540 | 68 69 74 77 65 6c 6c 20 3c 6b 65 69 74 68 40 74 75 6e 67 73 74 65 6e 67 72 61 70 68 69 63 73 2e | hitwell.<keith@tungstengraphics. |
0560 | 63 6f 6d 3e 0a 20 20 2a 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 23 69 6e 63 6c 75 64 65 | com>...*/...............#include |
0580 | 20 22 6d 61 69 6e 2f 74 65 78 66 6f 72 6d 61 74 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 62 72 | ."main/texformat.h".#include."br |
05a0 | 77 5f 63 6f 6e 74 65 78 74 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 62 72 77 5f 75 74 69 6c 2e | w_context.h".#include."brw_util. |
05c0 | 68 22 0a 23 69 6e 63 6c 75 64 65 20 22 62 72 77 5f 77 6d 2e 68 22 0a 23 69 6e 63 6c 75 64 65 20 | h".#include."brw_wm.h".#include. |
05e0 | 22 62 72 77 5f 73 74 61 74 65 2e 68 22 0a 0a 0a 47 4c 75 69 6e 74 20 62 72 77 5f 77 6d 5f 6e 72 | "brw_state.h"...GLuint.brw_wm_nr |
0600 | 5f 61 72 67 73 28 20 47 4c 75 69 6e 74 20 6f 70 63 6f 64 65 20 29 0a 7b 0a 20 20 20 73 77 69 74 | _args(.GLuint.opcode.).{....swit |
0620 | 63 68 20 28 6f 70 63 6f 64 65 29 20 7b 0a 0a 20 20 20 63 61 73 65 20 57 4d 5f 50 49 58 45 4c 58 | ch.(opcode).{.....case.WM_PIXELX |
0640 | 59 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 41 42 53 3a 0a 20 20 20 63 61 73 65 20 4f | Y:....case.OPCODE_ABS:....case.O |
0660 | 50 43 4f 44 45 5f 46 4c 52 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 46 52 43 3a 0a 20 | PCODE_FLR:....case.OPCODE_FRC:.. |
0680 | 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 57 5a 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 | ..case.OPCODE_SWZ:....case.OPCOD |
06a0 | 45 5f 4d 4f 56 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 43 4f 53 3a 0a 20 20 20 63 61 | E_MOV:....case.OPCODE_COS:....ca |
06c0 | 73 65 20 4f 50 43 4f 44 45 5f 45 58 32 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4c 47 | se.OPCODE_EX2:....case.OPCODE_LG |
06e0 | 32 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 52 43 50 3a 0a 20 20 20 63 61 73 65 20 4f | 2:....case.OPCODE_RCP:....case.O |
0700 | 50 43 4f 44 45 5f 52 53 51 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 49 4e 3a 0a 20 | PCODE_RSQ:....case.OPCODE_SIN:.. |
0720 | 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 43 53 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 | ..case.OPCODE_SCS:....case.OPCOD |
0740 | 45 5f 54 45 58 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 54 58 42 3a 0a 20 20 20 63 61 | E_TEX:....case.OPCODE_TXB:....ca |
0760 | 73 65 20 4f 50 43 4f 44 45 5f 54 58 50 3a 09 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4b | se.OPCODE_TXP:.....case.OPCODE_K |
0780 | 49 4c 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4c 49 54 3a 20 0a 20 20 20 63 61 73 65 | IL:....case.OPCODE_LIT:.....case |
07a0 | 20 57 4d 5f 43 49 4e 54 45 52 50 3a 20 0a 20 20 20 63 61 73 65 20 57 4d 5f 57 50 4f 53 58 59 3a | .WM_CINTERP:.....case.WM_WPOSXY: |
07c0 | 20 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 | ........return.1;.....case.OPCOD |
07e0 | 45 5f 50 4f 57 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 55 42 3a 0a 20 20 20 63 61 | E_POW:....case.OPCODE_SUB:....ca |
0800 | 73 65 20 4f 50 43 4f 44 45 5f 53 47 45 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 47 | se.OPCODE_SGE:....case.OPCODE_SG |
0820 | 54 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 4c 45 3a 0a 20 20 20 63 61 73 65 20 4f | T:....case.OPCODE_SLE:....case.O |
0840 | 50 43 4f 44 45 5f 53 4c 54 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 45 51 3a 0a 20 | PCODE_SLT:....case.OPCODE_SEQ:.. |
0860 | 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 53 4e 45 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 | ..case.OPCODE_SNE:....case.OPCOD |
0880 | 45 5f 41 44 44 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4d 41 58 3a 0a 20 20 20 63 61 | E_ADD:....case.OPCODE_MAX:....ca |
08a0 | 73 65 20 4f 50 43 4f 44 45 5f 4d 49 4e 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4d 55 | se.OPCODE_MIN:....case.OPCODE_MU |
08c0 | 4c 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 58 50 44 3a 0a 20 20 20 63 61 73 65 20 4f | L:....case.OPCODE_XPD:....case.O |
08e0 | 50 43 4f 44 45 5f 44 50 33 3a 09 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 44 50 34 3a 0a | PCODE_DP3:.....case.OPCODE_DP4:. |
0900 | 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 44 50 48 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f | ...case.OPCODE_DPH:....case.OPCO |
0920 | 44 45 5f 44 53 54 3a 0a 20 20 20 63 61 73 65 20 57 4d 5f 4c 49 4e 54 45 52 50 3a 20 0a 20 20 20 | DE_DST:....case.WM_LINTERP:..... |
0940 | 63 61 73 65 20 57 4d 5f 44 45 4c 54 41 58 59 3a 0a 20 20 20 63 61 73 65 20 57 4d 5f 50 49 58 45 | case.WM_DELTAXY:....case.WM_PIXE |
0960 | 4c 57 3a 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 32 3b 0a 0a 20 20 20 63 61 73 65 20 57 4d 5f | LW:.......return.2;.....case.WM_ |
0980 | 46 42 5f 57 52 49 54 45 3a 0a 20 20 20 63 61 73 65 20 57 4d 5f 50 49 4e 54 45 52 50 3a 20 0a 20 | FB_WRITE:....case.WM_PINTERP:... |
09a0 | 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4d 41 44 3a 09 0a 20 20 20 63 61 73 65 20 4f 50 43 4f | ..case.OPCODE_MAD:.....case.OPCO |
09c0 | 44 45 5f 43 4d 50 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4c 52 50 3a 0a 20 20 20 20 | DE_CMP:....case.OPCODE_LRP:..... |
09e0 | 20 20 72 65 74 75 72 6e 20 33 3b 0a 20 20 20 20 20 20 0a 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 | ..return.3;...........default:.. |
0a00 | 20 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 7d 0a 7d 0a 0a 0a 47 4c 75 69 6e 74 20 62 | .....return.0;....}.}...GLuint.b |
0a20 | 72 77 5f 77 6d 5f 69 73 5f 73 63 61 6c 61 72 5f 72 65 73 75 6c 74 28 20 47 4c 75 69 6e 74 20 6f | rw_wm_is_scalar_result(.GLuint.o |
0a40 | 70 63 6f 64 65 20 29 0a 7b 0a 20 20 20 73 77 69 74 63 68 20 28 6f 70 63 6f 64 65 29 20 7b 0a 20 | pcode.).{....switch.(opcode).{.. |
0a60 | 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 43 4f 53 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 | ..case.OPCODE_COS:....case.OPCOD |
0a80 | 45 5f 45 58 32 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 4c 47 32 3a 0a 20 20 20 63 61 | E_EX2:....case.OPCODE_LG2:....ca |
0aa0 | 73 65 20 4f 50 43 4f 44 45 5f 50 4f 57 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 52 43 | se.OPCODE_POW:....case.OPCODE_RC |
0ac0 | 50 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 52 53 51 3a 0a 20 20 20 63 61 73 65 20 4f | P:....case.OPCODE_RSQ:....case.O |
0ae0 | 50 43 4f 44 45 5f 53 49 4e 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 44 50 33 3a 0a 20 | PCODE_SIN:....case.OPCODE_DP3:.. |
0b00 | 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 44 50 34 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 | ..case.OPCODE_DP4:....case.OPCOD |
0b20 | 45 5f 44 50 48 3a 0a 20 20 20 63 61 73 65 20 4f 50 43 4f 44 45 5f 44 53 54 3a 0a 20 20 20 20 20 | E_DPH:....case.OPCODE_DST:...... |
0b40 | 20 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 20 20 0a 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 | .return.1;...........default:... |
0b60 | 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 7d 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 76 6f | ....return.0;....}.}...static.vo |
0b80 | 69 64 20 64 6f 5f 77 6d 5f 70 72 6f 67 28 20 73 74 72 75 63 74 20 62 72 77 5f 63 6f 6e 74 65 78 | id.do_wm_prog(.struct.brw_contex |
0ba0 | 74 20 2a 62 72 77 2c 0a 09 09 09 73 74 72 75 63 74 20 62 72 77 5f 66 72 61 67 6d 65 6e 74 5f 70 | t.*brw,....struct.brw_fragment_p |
0bc0 | 72 6f 67 72 61 6d 20 2a 66 70 2c 20 0a 09 09 09 73 74 72 75 63 74 20 62 72 77 5f 77 6d 5f 70 72 | rogram.*fp,.....struct.brw_wm_pr |
0be0 | 6f 67 5f 6b 65 79 20 2a 6b 65 79 29 0a 7b 0a 20 20 20 73 74 72 75 63 74 20 62 72 77 5f 77 6d 5f | og_key.*key).{....struct.brw_wm_ |
0c00 | 63 6f 6d 70 69 6c 65 20 2a 63 3b 0a 20 20 20 63 6f 6e 73 74 20 47 4c 75 69 6e 74 20 2a 70 72 6f | compile.*c;....const.GLuint.*pro |
0c20 | 67 72 61 6d 3b 0a 20 20 20 47 4c 75 69 6e 74 20 70 72 6f 67 72 61 6d 5f 73 69 7a 65 3b 0a 0a 20 | gram;....GLuint.program_size;... |
0c40 | 20 20 63 20 3d 20 62 72 77 2d 3e 77 6d 2e 63 6f 6d 70 69 6c 65 5f 64 61 74 61 3b 0a 20 20 20 69 | ..c.=.brw->wm.compile_data;....i |
0c60 | 66 20 28 63 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 20 20 20 20 20 62 72 77 2d 3e 77 6d 2e 63 6f 6d | f.(c.==.NULL).{......brw->wm.com |
0c80 | 70 69 6c 65 5f 64 61 74 61 20 3d 20 63 61 6c 6c 6f 63 28 31 2c 20 73 69 7a 65 6f 66 28 2a 62 72 | pile_data.=.calloc(1,.sizeof(*br |
0ca0 | 77 2d 3e 77 6d 2e 63 6f 6d 70 69 6c 65 5f 64 61 74 61 29 29 3b 0a 20 20 20 20 20 63 20 3d 20 62 | w->wm.compile_data));......c.=.b |
0cc0 | 72 77 2d 3e 77 6d 2e 63 6f 6d 70 69 6c 65 5f 64 61 74 61 3b 0a 20 20 20 7d 20 65 6c 73 65 20 7b | rw->wm.compile_data;....}.else.{ |
0ce0 | 0a 20 20 20 20 20 6d 65 6d 73 65 74 28 63 2c 20 30 2c 20 73 69 7a 65 6f 66 28 2a 62 72 77 2d 3e | ......memset(c,.0,.sizeof(*brw-> |
0d00 | 77 6d 2e 63 6f 6d 70 69 6c 65 5f 64 61 74 61 29 29 3b 0a 20 20 20 7d 0a 20 20 20 6d 65 6d 63 70 | wm.compile_data));....}....memcp |
0d20 | 79 28 26 63 2d 3e 6b 65 79 2c 20 6b 65 79 2c 20 73 69 7a 65 6f 66 28 2a 6b 65 79 29 29 3b 0a 0a | y(&c->key,.key,.sizeof(*key));.. |
0d40 | 20 20 20 63 2d 3e 66 70 20 3d 20 66 70 3b 0a 20 20 20 63 2d 3e 65 6e 76 5f 70 61 72 61 6d 20 3d | ...c->fp.=.fp;....c->env_param.= |
0d60 | 20 62 72 77 2d 3e 69 6e 74 65 6c 2e 63 74 78 2e 46 72 61 67 6d 65 6e 74 50 72 6f 67 72 61 6d 2e | .brw->intel.ctx.FragmentProgram. |
0d80 | 50 61 72 61 6d 65 74 65 72 73 3b 0a 0a 20 20 20 20 62 72 77 5f 69 6e 69 74 5f 63 6f 6d 70 69 6c | Parameters;......brw_init_compil |
0da0 | 65 28 62 72 77 2c 20 26 63 2d 3e 66 75 6e 63 29 3b 0a 20 20 20 69 66 20 28 62 72 77 5f 77 6d 5f | e(brw,.&c->func);....if.(brw_wm_ |
0dc0 | 69 73 5f 67 6c 73 6c 28 26 63 2d 3e 66 70 2d 3e 70 72 6f 67 72 61 6d 29 29 20 7b 0a 20 20 20 20 | is_glsl(&c->fp->program)).{..... |
0de0 | 20 20 20 62 72 77 5f 77 6d 5f 67 6c 73 6c 5f 65 6d 69 74 28 62 72 77 2c 20 63 29 3b 0a 20 20 20 | ...brw_wm_glsl_emit(brw,.c);.... |
0e00 | 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 2f 2a 20 41 75 67 6d 65 6e 74 20 66 72 61 67 6d | }.else.{......../*.Augment.fragm |
0e20 | 65 6e 74 20 70 72 6f 67 72 61 6d 2e 20 20 41 64 64 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 66 | ent.program...Add.instructions.f |
0e40 | 6f 72 20 70 72 65 2d 20 61 6e 64 0a 09 2a 20 70 6f 73 74 2d 66 72 61 67 6d 65 6e 74 2d 70 72 6f | or.pre-.and..*.post-fragment-pro |
0e60 | 67 72 61 6d 20 74 61 73 6b 73 20 73 75 63 68 20 61 73 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e | gram.tasks.such.as.interpolation |
0e80 | 20 61 6e 64 20 66 6f 67 67 69 6e 67 2e 0a 09 2a 2f 0a 20 20 20 20 20 20 20 62 72 77 5f 77 6d 5f | .and.fogging...*/........brw_wm_ |
0ea0 | 70 61 73 73 5f 66 70 28 63 29 3b 0a 0a 20 20 20 20 20 20 20 2f 2a 20 54 72 61 6e 73 6c 61 74 65 | pass_fp(c);........./*.Translate |
0ec0 | 20 74 6f 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e | .to.intermediate.representation. |
0ee0 | 20 20 42 75 69 6c 64 20 72 65 67 69 73 74 65 72 20 75 73 61 67 65 0a 09 2a 20 63 68 61 69 6e 73 | ..Build.register.usage..*.chains |
0f00 | 2e 0a 09 2a 2f 0a 20 20 20 20 20 20 20 62 72 77 5f 77 6d 5f 70 61 73 73 30 28 63 29 3b 0a 0a 20 | ...*/........brw_wm_pass0(c);... |
0f20 | 20 20 20 20 20 20 2f 2a 20 44 65 61 64 20 63 6f 64 65 20 72 65 6d 6f 76 61 6c 2e 0a 09 2a 2f 0a | ....../*.Dead.code.removal...*/. |
0f40 | 20 20 20 20 20 20 20 62 72 77 5f 77 6d 5f 70 61 73 73 31 28 63 29 3b 0a 0a 20 20 20 20 20 20 20 | .......brw_wm_pass1(c);......... |
0f60 | 2f 2a 20 52 65 67 69 73 74 65 72 20 61 6c 6c 6f 63 61 74 69 6f 6e 2e 0a 09 2a 2f 0a 20 20 20 20 | /*.Register.allocation...*/..... |
0f80 | 20 20 20 63 2d 3e 67 72 66 5f 6c 69 6d 69 74 20 3d 20 42 52 57 5f 57 4d 5f 4d 41 58 5f 47 52 46 | ...c->grf_limit.=.BRW_WM_MAX_GRF |
0fa0 | 2f 32 3b 0a 0a 20 20 20 20 20 20 20 62 72 77 5f 77 6d 5f 70 61 73 73 32 28 63 29 3b 0a 0a 20 20 | /2;.........brw_wm_pass2(c);.... |
0fc0 | 20 20 20 20 20 63 2d 3e 70 72 6f 67 5f 64 61 74 61 2e 74 6f 74 61 6c 5f 67 72 66 20 3d 20 63 2d | .....c->prog_data.total_grf.=.c- |
0fe0 | 3e 6d 61 78 5f 77 6d 5f 67 72 66 3b 0a 20 20 20 20 20 20 20 69 66 20 28 63 2d 3e 6c 61 73 74 5f | >max_wm_grf;........if.(c->last_ |
1000 | 73 63 72 61 74 63 68 29 20 7b 0a 09 20 20 20 63 2d 3e 70 72 6f 67 5f 64 61 74 61 2e 74 6f 74 61 | scratch).{.....c->prog_data.tota |
1020 | 6c 5f 73 63 72 61 74 63 68 20 3d 0a 09 20 20 20 20 20 20 20 63 2d 3e 6c 61 73 74 5f 73 63 72 61 | l_scratch.=.........c->last_scra |
1040 | 74 63 68 20 2b 20 30 78 34 30 3b 0a 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 20 20 20 | tch.+.0x40;........}.else.{..... |
1060 | 63 2d 3e 70 72 6f 67 5f 64 61 74 61 2e 74 6f 74 61 6c 5f 73 63 72 61 74 63 68 20 3d 20 30 3b 0a | c->prog_data.total_scratch.=.0;. |
1080 | 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 2f 2a 20 45 6d 69 74 20 47 45 4e 34 20 63 6f | .......}........./*.Emit.GEN4.co |
10a0 | 64 65 2e 0a 09 2a 2f 0a 20 20 20 20 20 20 20 62 72 77 5f 77 6d 5f 65 6d 69 74 28 63 29 3b 0a 20 | de...*/........brw_wm_emit(c);.. |
10c0 | 20 20 7d 0a 20 20 20 2f 2a 20 67 65 74 20 74 68 65 20 70 72 6f 67 72 61 6d 0a 20 20 20 20 2a 2f | ..}..../*.get.the.program.....*/ |
10e0 | 0a 20 20 20 70 72 6f 67 72 61 6d 20 3d 20 62 72 77 5f 67 65 74 5f 70 72 6f 67 72 61 6d 28 26 63 | ....program.=.brw_get_program(&c |
1100 | 2d 3e 66 75 6e 63 2c 20 26 70 72 6f 67 72 61 6d 5f 73 69 7a 65 29 3b 0a 0a 20 20 20 64 72 69 5f | ->func,.&program_size);.....dri_ |
1120 | 62 6f 5f 75 6e 72 65 66 65 72 65 6e 63 65 28 62 72 77 2d 3e 77 6d 2e 70 72 6f 67 5f 62 6f 29 3b | bo_unreference(brw->wm.prog_bo); |
1140 | 0a 20 20 20 62 72 77 2d 3e 77 6d 2e 70 72 6f 67 5f 62 6f 20 3d 20 62 72 77 5f 75 70 6c 6f 61 64 | ....brw->wm.prog_bo.=.brw_upload |
1160 | 5f 63 61 63 68 65 28 20 26 62 72 77 2d 3e 63 61 63 68 65 2c 20 42 52 57 5f 57 4d 5f 50 52 4f 47 | _cache(.&brw->cache,.BRW_WM_PROG |
1180 | 2c 0a 09 09 09 09 20 20 20 20 20 20 20 26 63 2d 3e 6b 65 79 2c 20 73 69 7a 65 6f 66 28 63 2d 3e | ,............&c->key,.sizeof(c-> |
11a0 | 6b 65 79 29 2c 0a 09 09 09 09 20 20 20 20 20 20 20 4e 55 4c 4c 2c 20 30 2c 0a 09 09 09 09 20 20 | key),............NULL,.0,....... |
11c0 | 20 20 20 20 20 70 72 6f 67 72 61 6d 2c 20 70 72 6f 67 72 61 6d 5f 73 69 7a 65 2c 0a 09 09 09 09 | .....program,.program_size,..... |
11e0 | 20 20 20 20 20 20 20 26 63 2d 3e 70 72 6f 67 5f 64 61 74 61 2c 0a 09 09 09 09 20 20 20 20 20 20 | .......&c->prog_data,........... |
1200 | 20 26 62 72 77 2d 3e 77 6d 2e 70 72 6f 67 5f 64 61 74 61 20 29 3b 0a 7d 0a 0a 0a 0a 73 74 61 74 | .&brw->wm.prog_data.);.}....stat |
1220 | 69 63 20 76 6f 69 64 20 62 72 77 5f 77 6d 5f 70 6f 70 75 6c 61 74 65 5f 6b 65 79 28 20 73 74 72 | ic.void.brw_wm_populate_key(.str |
1240 | 75 63 74 20 62 72 77 5f 63 6f 6e 74 65 78 74 20 2a 62 72 77 2c 0a 09 09 09 09 20 73 74 72 75 63 | uct.brw_context.*brw,......struc |
1260 | 74 20 62 72 77 5f 77 6d 5f 70 72 6f 67 5f 6b 65 79 20 2a 6b 65 79 20 29 0a 7b 0a 20 20 20 2f 2a | t.brw_wm_prog_key.*key.).{..../* |
1280 | 20 42 52 57 5f 4e 45 57 5f 46 52 41 47 4d 45 4e 54 5f 50 52 4f 47 52 41 4d 20 2a 2f 0a 20 20 20 | .BRW_NEW_FRAGMENT_PROGRAM.*/.... |
12a0 | 73 74 72 75 63 74 20 62 72 77 5f 66 72 61 67 6d 65 6e 74 5f 70 72 6f 67 72 61 6d 20 2a 66 70 20 | struct.brw_fragment_program.*fp. |
12c0 | 3d 20 0a 20 20 20 20 20 20 28 73 74 72 75 63 74 20 62 72 77 5f 66 72 61 67 6d 65 6e 74 5f 70 72 | =........(struct.brw_fragment_pr |
12e0 | 6f 67 72 61 6d 20 2a 29 62 72 77 2d 3e 66 72 61 67 6d 65 6e 74 5f 70 72 6f 67 72 61 6d 3b 0a 20 | ogram.*)brw->fragment_program;.. |
1300 | 20 20 47 4c 75 69 6e 74 20 6c 6f 6f 6b 75 70 20 3d 20 30 3b 0a 20 20 20 47 4c 75 69 6e 74 20 6c | ..GLuint.lookup.=.0;....GLuint.l |
1320 | 69 6e 65 5f 61 61 3b 0a 20 20 20 47 4c 75 69 6e 74 20 69 3b 0a 0a 20 20 20 6d 65 6d 73 65 74 28 | ine_aa;....GLuint.i;.....memset( |
1340 | 6b 65 79 2c 20 30 2c 20 73 69 7a 65 6f 66 28 2a 6b 65 79 29 29 3b 0a 0a 20 20 20 2f 2a 20 42 75 | key,.0,.sizeof(*key));...../*.Bu |
1360 | 69 6c 64 20 74 68 65 20 69 6e 64 65 78 20 66 6f 72 20 74 61 62 6c 65 20 6c 6f 6f 6b 75 70 0a 20 | ild.the.index.for.table.lookup.. |
1380 | 20 20 20 2a 2f 0a 20 20 20 2f 2a 20 5f 4e 45 57 5f 43 4f 4c 4f 52 20 2a 2f 0a 20 20 20 69 66 20 | ...*/..../*._NEW_COLOR.*/....if. |
13a0 | 28 66 70 2d 3e 70 72 6f 67 72 61 6d 2e 55 73 65 73 4b 69 6c 6c 20 7c 7c 0a 20 20 20 20 20 20 20 | (fp->program.UsesKill.||........ |
13c0 | 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 43 6f 6c 6f 72 2d 3e 41 6c 70 68 61 45 6e 61 62 6c 65 64 | brw->attribs.Color->AlphaEnabled |
13e0 | 29 0a 20 20 20 20 20 20 6c 6f 6f 6b 75 70 20 7c 3d 20 49 5a 5f 50 53 5f 4b 49 4c 4c 5f 41 4c 50 | ).......lookup.|=.IZ_PS_KILL_ALP |
1400 | 48 41 54 45 53 54 5f 42 49 54 3b 0a 0a 20 20 20 69 66 20 28 66 70 2d 3e 70 72 6f 67 72 61 6d 2e | HATEST_BIT;.....if.(fp->program. |
1420 | 42 61 73 65 2e 4f 75 74 70 75 74 73 57 72 69 74 74 65 6e 20 26 20 28 31 3c 3c 46 52 41 47 5f 52 | Base.OutputsWritten.&.(1<<FRAG_R |
1440 | 45 53 55 4c 54 5f 44 45 50 52 29 29 0a 20 20 20 20 20 20 6c 6f 6f 6b 75 70 20 7c 3d 20 49 5a 5f | ESULT_DEPR)).......lookup.|=.IZ_ |
1460 | 50 53 5f 43 4f 4d 50 55 54 45 53 5f 44 45 50 54 48 5f 42 49 54 3b 0a 0a 20 20 20 2f 2a 20 5f 4e | PS_COMPUTES_DEPTH_BIT;...../*._N |
1480 | 45 57 5f 44 45 50 54 48 20 2a 2f 0a 20 20 20 69 66 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e | EW_DEPTH.*/....if.(brw->attribs. |
14a0 | 44 65 70 74 68 2d 3e 54 65 73 74 29 0a 20 20 20 20 20 20 6c 6f 6f 6b 75 70 20 7c 3d 20 49 5a 5f | Depth->Test).......lookup.|=.IZ_ |
14c0 | 44 45 50 54 48 5f 54 45 53 54 5f 45 4e 41 42 4c 45 5f 42 49 54 3b 0a 0a 20 20 20 69 66 20 28 62 | DEPTH_TEST_ENABLE_BIT;.....if.(b |
14e0 | 72 77 2d 3e 61 74 74 72 69 62 73 2e 44 65 70 74 68 2d 3e 54 65 73 74 20 26 26 20 20 0a 20 20 20 | rw->attribs.Depth->Test.&&...... |
1500 | 20 20 20 20 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 44 65 70 74 68 2d 3e 4d 61 73 6b 29 20 2f 2a | ....brw->attribs.Depth->Mask)./* |
1520 | 20 3f 3f 20 2a 2f 0a 20 20 20 20 20 20 6c 6f 6f 6b 75 70 20 7c 3d 20 49 5a 5f 44 45 50 54 48 5f | .??.*/.......lookup.|=.IZ_DEPTH_ |
1540 | 57 52 49 54 45 5f 45 4e 41 42 4c 45 5f 42 49 54 3b 0a 0a 20 20 20 2f 2a 20 5f 4e 45 57 5f 53 54 | WRITE_ENABLE_BIT;...../*._NEW_ST |
1560 | 45 4e 43 49 4c 20 2a 2f 0a 20 20 20 69 66 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 53 74 65 | ENCIL.*/....if.(brw->attribs.Ste |
1580 | 6e 63 69 6c 2d 3e 45 6e 61 62 6c 65 64 29 20 7b 0a 20 20 20 20 20 20 6c 6f 6f 6b 75 70 20 7c 3d | ncil->Enabled).{.......lookup.|= |
15a0 | 20 49 5a 5f 53 54 45 4e 43 49 4c 5f 54 45 53 54 5f 45 4e 41 42 4c 45 5f 42 49 54 3b 0a 0a 20 20 | .IZ_STENCIL_TEST_ENABLE_BIT;.... |
15c0 | 20 20 20 20 69 66 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 53 74 65 6e 63 69 6c 2d 3e 57 72 | ....if.(brw->attribs.Stencil->Wr |
15e0 | 69 74 65 4d 61 73 6b 5b 30 5d 20 7c 7c 0a 09 20 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 53 | iteMask[0].||....(brw->attribs.S |
1600 | 74 65 6e 63 69 6c 2d 3e 5f 54 65 73 74 54 77 6f 53 69 64 65 20 26 26 0a 09 20 20 20 62 72 77 2d | tencil->_TestTwoSide.&&.....brw- |
1620 | 3e 61 74 74 72 69 62 73 2e 53 74 65 6e 63 69 6c 2d 3e 57 72 69 74 65 4d 61 73 6b 5b 31 5d 29 29 | >attribs.Stencil->WriteMask[1])) |
1640 | 0a 09 20 6c 6f 6f 6b 75 70 20 7c 3d 20 49 5a 5f 53 54 45 4e 43 49 4c 5f 57 52 49 54 45 5f 45 4e | ...lookup.|=.IZ_STENCIL_WRITE_EN |
1660 | 41 42 4c 45 5f 42 49 54 3b 0a 20 20 20 7d 0a 0a 20 20 20 6c 69 6e 65 5f 61 61 20 3d 20 41 41 5f | ABLE_BIT;....}.....line_aa.=.AA_ |
1680 | 4e 45 56 45 52 3b 0a 0a 20 20 20 2f 2a 20 5f 4e 45 57 5f 4c 49 4e 45 2c 20 5f 4e 45 57 5f 50 4f | NEVER;...../*._NEW_LINE,._NEW_PO |
16a0 | 4c 59 47 4f 4e 2c 20 42 52 57 5f 4e 45 57 5f 52 45 44 55 43 45 44 5f 50 52 49 4d 49 54 49 56 45 | LYGON,.BRW_NEW_REDUCED_PRIMITIVE |
16c0 | 20 2a 2f 0a 20 20 20 69 66 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 4c 69 6e 65 2d 3e 53 6d | .*/....if.(brw->attribs.Line->Sm |
16e0 | 6f 6f 74 68 46 6c 61 67 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 62 72 77 2d 3e 69 6e 74 65 6c | oothFlag).{.......if.(brw->intel |
1700 | 2e 72 65 64 75 63 65 64 5f 70 72 69 6d 69 74 69 76 65 20 3d 3d 20 47 4c 5f 4c 49 4e 45 53 29 20 | .reduced_primitive.==.GL_LINES). |
1720 | 7b 0a 09 20 6c 69 6e 65 5f 61 61 20 3d 20 41 41 5f 41 4c 57 41 59 53 3b 0a 20 20 20 20 20 20 7d | {...line_aa.=.AA_ALWAYS;.......} |
1740 | 0a 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 62 72 77 2d 3e 69 6e 74 65 6c 2e 72 65 64 75 63 | .......else.if.(brw->intel.reduc |
1760 | 65 64 5f 70 72 69 6d 69 74 69 76 65 20 3d 3d 20 47 4c 5f 54 52 49 41 4e 47 4c 45 53 29 20 7b 0a | ed_primitive.==.GL_TRIANGLES).{. |
1780 | 09 20 69 66 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 50 6f 6c 79 67 6f 6e 2d 3e 46 72 6f 6e | ..if.(brw->attribs.Polygon->Fron |
17a0 | 74 4d 6f 64 65 20 3d 3d 20 47 4c 5f 4c 49 4e 45 29 20 7b 0a 09 20 20 20 20 6c 69 6e 65 5f 61 61 | tMode.==.GL_LINE).{......line_aa |
17c0 | 20 3d 20 41 41 5f 53 4f 4d 45 54 49 4d 45 53 3b 0a 0a 09 20 20 20 20 69 66 20 28 62 72 77 2d 3e | .=.AA_SOMETIMES;.......if.(brw-> |
17e0 | 61 74 74 72 69 62 73 2e 50 6f 6c 79 67 6f 6e 2d 3e 42 61 63 6b 4d 6f 64 65 20 3d 3d 20 47 4c 5f | attribs.Polygon->BackMode.==.GL_ |
1800 | 4c 49 4e 45 20 7c 7c 0a 09 09 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 50 6f 6c 79 67 6f 6e 2d | LINE.||...(brw->attribs.Polygon- |
1820 | 3e 43 75 6c 6c 46 6c 61 67 20 26 26 0a 09 09 20 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 50 6f 6c | >CullFlag.&&....brw->attribs.Pol |
1840 | 79 67 6f 6e 2d 3e 43 75 6c 6c 46 61 63 65 4d 6f 64 65 20 3d 3d 20 47 4c 5f 42 41 43 4b 29 29 0a | ygon->CullFaceMode.==.GL_BACK)). |
1860 | 09 20 20 20 20 20 20 20 6c 69 6e 65 5f 61 61 20 3d 20 41 41 5f 41 4c 57 41 59 53 3b 0a 09 20 7d | ........line_aa.=.AA_ALWAYS;...} |
1880 | 0a 09 20 65 6c 73 65 20 69 66 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 50 6f 6c 79 67 6f 6e | ...else.if.(brw->attribs.Polygon |
18a0 | 2d 3e 42 61 63 6b 4d 6f 64 65 20 3d 3d 20 47 4c 5f 4c 49 4e 45 29 20 7b 0a 09 20 20 20 20 6c 69 | ->BackMode.==.GL_LINE).{......li |
18c0 | 6e 65 5f 61 61 20 3d 20 41 41 5f 53 4f 4d 45 54 49 4d 45 53 3b 0a 0a 00 09 20 20 20 20 69 66 20 | ne_aa.=.AA_SOMETIMES;........if. |
18e0 | 28 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 50 6f 6c 79 67 6f 6e 2d 3e 43 75 6c 6c 46 6c 61 67 | ((brw->attribs.Polygon->CullFlag |
1900 | 20 26 26 0a 09 09 20 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 50 6f 6c 79 67 6f 6e 2d 3e 43 75 6c | .&&....brw->attribs.Polygon->Cul |
1920 | 6c 46 61 63 65 4d 6f 64 65 20 3d 3d 20 47 4c 5f 46 52 4f 4e 54 29 29 0a 09 20 20 20 20 20 20 20 | lFaceMode.==.GL_FRONT))......... |
1940 | 6c 69 6e 65 5f 61 61 20 3d 20 41 41 5f 41 4c 57 41 59 53 3b 0a 09 20 7d 0a 20 20 20 20 20 20 7d | line_aa.=.AA_ALWAYS;...}.......} |
1960 | 0a 20 20 20 7d 0a 09 20 0a 20 20 20 62 72 77 5f 77 6d 5f 6c 6f 6f 6b 75 70 5f 69 7a 28 6c 69 6e | ....}.......brw_wm_lookup_iz(lin |
1980 | 65 5f 61 61 2c 0a 09 09 20 20 20 20 6c 6f 6f 6b 75 70 2c 0a 09 09 20 20 20 20 6b 65 79 29 3b 0a | e_aa,.......lookup,.......key);. |
19a0 | 0a 0a 20 20 20 2f 2a 20 42 52 57 5f 4e 45 57 5f 57 4d 5f 49 4e 50 55 54 5f 44 49 4d 45 4e 53 49 | ...../*.BRW_NEW_WM_INPUT_DIMENSI |
19c0 | 4f 4e 53 20 2a 2f 0a 20 20 20 6b 65 79 2d 3e 70 72 6f 6a 74 65 78 5f 6d 61 73 6b 20 3d 20 62 72 | ONS.*/....key->projtex_mask.=.br |
19e0 | 77 2d 3e 77 6d 2e 69 6e 70 75 74 5f 73 69 7a 65 5f 6d 61 73 6b 73 5b 34 2d 31 5d 20 3e 3e 20 28 | w->wm.input_size_masks[4-1].>>.( |
1a00 | 46 52 41 47 5f 41 54 54 52 49 42 5f 54 45 58 30 20 2d 20 46 52 41 47 5f 41 54 54 52 49 42 5f 57 | FRAG_ATTRIB_TEX0.-.FRAG_ATTRIB_W |
1a20 | 50 4f 53 29 3b 20 0a 0a 20 20 20 2f 2a 20 5f 4e 45 57 5f 4c 49 47 48 54 20 2a 2f 0a 20 20 20 6b | POS);....../*._NEW_LIGHT.*/....k |
1a40 | 65 79 2d 3e 66 6c 61 74 5f 73 68 61 64 65 20 3d 20 28 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 4c | ey->flat_shade.=.(brw->attribs.L |
1a60 | 69 67 68 74 2d 3e 53 68 61 64 65 4d 6f 64 65 6c 20 3d 3d 20 47 4c 5f 46 4c 41 54 29 3b 0a 0a 20 | ight->ShadeModel.==.GL_FLAT);... |
1a80 | 20 20 2f 2a 20 5f 4e 45 57 5f 54 45 58 54 55 52 45 20 2a 2f 0a 20 20 20 66 6f 72 20 28 69 20 3d | ../*._NEW_TEXTURE.*/....for.(i.= |
1aa0 | 20 30 3b 20 69 20 3c 20 42 52 57 5f 4d 41 58 5f 54 45 58 5f 55 4e 49 54 3b 20 69 2b 2b 29 20 7b | .0;.i.<.BRW_MAX_TEX_UNIT;.i++).{ |
1ac0 | 0a 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 67 6c 5f 74 65 78 74 75 72 65 5f 75 | .......const.struct.gl_texture_u |
1ae0 | 6e 69 74 20 2a 75 6e 69 74 20 3d 20 26 62 72 77 2d 3e 61 74 74 72 69 62 73 2e 54 65 78 74 75 72 | nit.*unit.=.&brw->attribs.Textur |
1b00 | 65 2d 3e 55 6e 69 74 5b 69 5d 3b 0a 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 67 | e->Unit[i];.......const.struct.g |
1b20 | 6c 5f 74 65 78 74 75 72 65 5f 6f 62 6a 65 63 74 20 2a 74 20 3d 20 75 6e 69 74 2d 3e 5f 43 75 72 | l_texture_object.*t.=.unit->_Cur |
1b40 | 72 65 6e 74 3b 0a 0a 20 20 20 20 20 20 69 66 20 28 75 6e 69 74 2d 3e 5f 52 65 61 6c 6c 79 45 6e | rent;........if.(unit->_ReallyEn |
1b60 | 61 62 6c 65 64 29 20 7b 0a 09 20 69 66 20 28 74 2d 3e 49 6d 61 67 65 5b 30 5d 5b 74 2d 3e 42 61 | abled).{...if.(t->Image[0][t->Ba |
1b80 | 73 65 4c 65 76 65 6c 5d 2d 3e 49 6e 74 65 72 6e 61 6c 46 6f 72 6d 61 74 20 3d 3d 20 47 4c 5f 59 | seLevel]->InternalFormat.==.GL_Y |
1ba0 | 43 42 43 52 5f 4d 45 53 41 29 20 7b 0a 09 20 20 20 20 6b 65 79 2d 3e 79 75 76 74 65 78 5f 6d 61 | CBCR_MESA).{......key->yuvtex_ma |
1bc0 | 73 6b 20 7c 3d 20 31 3c 3c 69 3b 0a 09 20 20 20 20 69 66 20 28 74 2d 3e 49 6d 61 67 65 5b 30 5d | sk.|=.1<<i;......if.(t->Image[0] |
1be0 | 5b 74 2d 3e 42 61 73 65 4c 65 76 65 6c 5d 2d 3e 54 65 78 46 6f 72 6d 61 74 2d 3e 4d 65 73 61 46 | [t->BaseLevel]->TexFormat->MesaF |
1c00 | 6f 72 6d 61 74 20 3d 3d 20 0a 09 09 20 20 20 20 4d 45 53 41 5f 46 4f 52 4d 41 54 5f 59 43 42 43 | ormat.==........MESA_FORMAT_YCBC |
1c20 | 52 29 0a 09 09 6b 65 79 2d 3e 79 75 76 74 65 78 5f 73 77 61 70 5f 6d 61 73 6b 20 7c 3d 20 31 3c | R)...key->yuvtex_swap_mask.|=.1< |
1c40 | 3c 20 69 3b 0a 09 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 7d 0a 0a 20 20 20 2f 2a 20 53 68 61 | <.i;...}.......}....}...../*.Sha |
1c60 | 64 6f 77 20 2a 2f 0a 20 20 20 6b 65 79 2d 3e 73 68 61 64 6f 77 74 65 78 5f 6d 61 73 6b 20 3d 20 | dow.*/....key->shadowtex_mask.=. |
1c80 | 66 70 2d 3e 70 72 6f 67 72 61 6d 2e 42 61 73 65 2e 53 68 61 64 6f 77 53 61 6d 70 6c 65 72 73 3b | fp->program.Base.ShadowSamplers; |
1ca0 | 0a 0a 20 20 20 2f 2a 20 5f 4e 45 57 5f 42 55 46 46 45 52 53 20 2a 2f 0a 20 20 20 2f 2a 0a 20 20 | ...../*._NEW_BUFFERS.*/..../*... |
1cc0 | 20 20 2a 20 49 6e 63 6c 75 64 65 20 74 68 65 20 64 72 61 77 20 62 75 66 66 65 72 20 6f 72 69 67 | ..*.Include.the.draw.buffer.orig |
1ce0 | 69 6e 20 61 6e 64 20 68 65 69 67 68 74 20 73 6f 20 74 68 61 74 20 77 65 20 63 61 6e 20 63 61 6c | in.and.height.so.that.we.can.cal |
1d00 | 63 75 6c 61 74 65 0a 20 20 20 20 2a 20 66 72 61 67 6d 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 76 | culate.....*.fragment.position.v |
1d20 | 61 6c 75 65 73 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 62 6f 74 74 6f 6d 20 6c 65 66 | alues.relative.to.the.bottom.lef |
1d40 | 74 20 6f 66 20 74 68 65 20 64 72 61 77 61 62 6c 65 2c 0a 20 20 20 20 2a 20 66 72 6f 6d 20 74 68 | t.of.the.drawable,.....*.from.th |
1d60 | 65 20 69 6e 63 6f 6d 69 6e 67 20 73 63 72 65 65 6e 20 6f 72 69 67 69 6e 20 72 65 6c 61 74 69 76 | e.incoming.screen.origin.relativ |
1d80 | 65 20 70 6f 73 69 74 69 6f 6e 20 77 65 20 67 65 74 20 61 73 20 70 61 72 74 20 6f 66 20 6f 75 72 | e.position.we.get.as.part.of.our |
1da0 | 0a 20 20 20 20 2a 20 70 61 79 6c 6f 61 64 2e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 57 65 20 63 | .....*.payload......*.....*.We.c |
1dc0 | 6f 75 6c 64 20 61 76 6f 69 64 20 72 65 63 6f 6d 70 69 6c 69 6e 67 20 62 79 20 69 6e 63 6c 75 64 | ould.avoid.recompiling.by.includ |
1de0 | 69 6e 67 20 74 68 69 73 20 61 73 20 61 20 63 6f 6e 73 74 61 6e 74 20 72 65 66 65 72 65 6e 63 65 | ing.this.as.a.constant.reference |
1e00 | 64 20 62 79 0a 20 20 20 20 2a 20 6f 75 72 20 70 72 6f 67 72 61 6d 2c 20 62 75 74 20 69 66 20 77 | d.by.....*.our.program,.but.if.w |
1e20 | 65 20 77 65 72 65 20 74 6f 20 64 6f 20 74 68 61 74 20 69 74 20 77 6f 75 6c 64 20 61 6c 73 6f 20 | e.were.to.do.that.it.would.also. |
1e40 | 62 65 20 6e 69 63 65 20 74 6f 20 68 61 6e 64 6c 65 0a 20 20 20 20 2a 20 67 65 74 74 69 6e 67 20 | be.nice.to.handle.....*.getting. |
1e60 | 74 68 61 74 20 63 6f 6e 73 74 61 6e 74 20 75 70 64 61 74 65 64 20 61 74 20 62 61 74 63 68 62 75 | that.constant.updated.at.batchbu |
1e80 | 66 66 65 72 20 73 75 62 6d 69 74 20 74 69 6d 65 20 28 77 68 65 6e 20 77 65 0a 20 20 20 20 2a 20 | ffer.submit.time.(when.we.....*. |
1ea0 | 68 6f 6c 64 20 74 68 65 20 6c 6f 63 6b 20 61 6e 64 20 6b 6e 6f 77 20 77 68 65 72 65 20 74 68 65 | hold.the.lock.and.know.where.the |
1ec0 | 20 62 75 66 66 65 72 20 72 65 61 6c 6c 79 20 69 73 29 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 | .buffer.really.is).rather.than.a |
1ee0 | 74 20 65 6d 69 74 0a 20 20 20 20 2a 20 74 69 6d 65 20 77 68 65 6e 20 77 65 20 64 6f 6e 27 74 20 | t.emit.....*.time.when.we.don't. |
1f00 | 68 6f 6c 64 20 74 68 65 20 6c 6f 63 6b 20 61 6e 64 20 61 72 65 20 6a 75 73 74 20 67 75 65 73 73 | hold.the.lock.and.are.just.guess |
1f20 | 69 6e 67 2e 20 20 57 65 20 63 6f 75 6c 64 20 61 6c 73 6f 0a 20 20 20 20 2a 20 6a 75 73 74 20 61 | ing...We.could.also.....*.just.a |
1f40 | 76 6f 69 64 20 75 73 69 6e 67 20 74 68 69 73 20 61 73 20 6b 65 79 20 64 61 74 61 20 69 66 20 74 | void.using.this.as.key.data.if.t |
1f60 | 68 65 20 70 72 6f 67 72 61 6d 20 64 6f 65 73 6e 27 74 20 75 73 65 0a 20 20 20 20 2a 20 66 72 61 | he.program.doesn't.use.....*.fra |
1f80 | 67 6d 65 6e 74 2e 70 6f 73 69 74 69 6f 6e 2e 0a 20 20 20 20 2a 0a 20 20 20 20 2a 20 54 68 69 73 | gment.position......*.....*.This |
1fa0 | 20 70 72 65 74 74 79 20 6d 75 63 68 20 62 65 63 6f 6d 65 73 20 6d 6f 6f 74 20 77 69 74 68 20 44 | .pretty.much.becomes.moot.with.D |
1fc0 | 52 49 32 20 61 6e 64 20 72 65 64 69 72 65 63 74 65 64 20 62 75 66 66 65 72 73 20 61 6e 79 77 61 | RI2.and.redirected.buffers.anywa |
1fe0 | 79 2c 0a 20 20 20 20 2a 20 61 73 20 6f 75 72 20 6f 72 69 67 69 6e 73 20 77 69 6c 6c 20 61 6c 77 | y,.....*.as.our.origins.will.alw |
2000 | 61 79 73 20 62 65 20 7a 65 72 6f 20 74 68 65 6e 2e 0a 20 20 20 20 2a 2f 0a 20 20 20 69 66 20 28 | ays.be.zero.then......*/....if.( |
2020 | 62 72 77 2d 3e 69 6e 74 65 6c 2e 64 72 69 44 72 61 77 61 62 6c 65 20 21 3d 20 4e 55 4c 4c 29 20 | brw->intel.driDrawable.!=.NULL). |
2040 | 7b 0a 20 20 20 20 20 20 6b 65 79 2d 3e 6f 72 69 67 69 6e 5f 78 20 3d 20 62 72 77 2d 3e 69 6e 74 | {.......key->origin_x.=.brw->int |
2060 | 65 6c 2e 64 72 69 44 72 61 77 61 62 6c 65 2d 3e 78 3b 0a 20 20 20 20 20 20 6b 65 79 2d 3e 6f 72 | el.driDrawable->x;.......key->or |
2080 | 69 67 69 6e 5f 79 20 3d 20 62 72 77 2d 3e 69 6e 74 65 6c 2e 64 72 69 44 72 61 77 61 62 6c 65 2d | igin_y.=.brw->intel.driDrawable- |
20a0 | 3e 79 3b 0a 20 20 20 20 20 20 6b 65 79 2d 3e 64 72 61 77 61 62 6c 65 5f 68 65 69 67 68 74 20 3d | >y;.......key->drawable_height.= |
20c0 | 20 62 72 77 2d 3e 69 6e 74 65 6c 2e 64 72 69 44 72 61 77 61 62 6c 65 2d 3e 68 3b 0a 20 20 20 7d | .brw->intel.driDrawable->h;....} |
20e0 | 0a 0a 20 20 20 2f 2a 20 45 78 74 72 61 20 69 6e 66 6f 3a 0a 20 20 20 20 2a 2f 0a 20 20 20 6b 65 | ...../*.Extra.info:.....*/....ke |
2100 | 79 2d 3e 70 72 6f 67 72 61 6d 5f 73 74 72 69 6e 67 5f 69 64 20 3d 20 66 70 2d 3e 69 64 3b 0a 0a | y->program_string_id.=.fp->id;.. |
2120 | 7d 0a 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 62 72 77 5f 70 72 65 70 61 72 65 5f 77 6d 5f 70 | }...static.void.brw_prepare_wm_p |
2140 | 72 6f 67 28 73 74 72 75 63 74 20 62 72 77 5f 63 6f 6e 74 65 78 74 20 2a 62 72 77 29 0a 7b 0a 20 | rog(struct.brw_context.*brw).{.. |
2160 | 20 20 73 74 72 75 63 74 20 62 72 77 5f 77 6d 5f 70 72 6f 67 5f 6b 65 79 20 6b 65 79 3b 0a 20 20 | ..struct.brw_wm_prog_key.key;... |
2180 | 20 73 74 72 75 63 74 20 62 72 77 5f 66 72 61 67 6d 65 6e 74 5f 70 72 6f 67 72 61 6d 20 2a 66 70 | .struct.brw_fragment_program.*fp |
21a0 | 20 3d 20 28 73 74 72 75 63 74 20 62 72 77 5f 66 72 61 67 6d 65 6e 74 5f 70 72 6f 67 72 61 6d 20 | .=.(struct.brw_fragment_program. |
21c0 | 2a 29 0a 20 20 20 20 20 20 62 72 77 2d 3e 66 72 61 67 6d 65 6e 74 5f 70 72 6f 67 72 61 6d 3b 0a | *).......brw->fragment_program;. |
21e0 | 20 20 20 20 20 0a 20 20 20 62 72 77 5f 77 6d 5f 70 6f 70 75 6c 61 74 65 5f 6b 65 79 28 62 72 77 | .........brw_wm_populate_key(brw |
2200 | 2c 20 26 6b 65 79 29 3b 0a 0a 20 20 20 2f 2a 20 4d 61 6b 65 20 61 6e 20 65 61 72 6c 79 20 63 68 | ,.&key);...../*.Make.an.early.ch |
2220 | 65 63 6b 20 66 6f 72 20 74 68 65 20 6b 65 79 2e 0a 20 20 20 20 2a 2f 0a 20 20 20 64 72 69 5f 62 | eck.for.the.key......*/....dri_b |
2240 | 6f 5f 75 6e 72 65 66 65 72 65 6e 63 65 28 62 72 77 2d 3e 77 6d 2e 70 72 6f 67 5f 62 6f 29 3b 0a | o_unreference(brw->wm.prog_bo);. |
2260 | 20 20 20 62 72 77 2d 3e 77 6d 2e 70 72 6f 67 5f 62 6f 20 3d 20 62 72 77 5f 73 65 61 72 63 68 5f | ...brw->wm.prog_bo.=.brw_search_ |
2280 | 63 61 63 68 65 28 26 62 72 77 2d 3e 63 61 63 68 65 2c 20 42 52 57 5f 57 4d 5f 50 52 4f 47 2c 0a | cache(&brw->cache,.BRW_WM_PROG,. |
22a0 | 09 09 09 09 20 20 20 20 20 20 26 6b 65 79 2c 20 73 69 7a 65 6f 66 28 6b 65 79 29 2c 0a 09 09 09 | ..........&key,.sizeof(key),.... |
22c0 | 09 20 20 20 20 20 20 4e 55 4c 4c 2c 20 30 2c 0a 09 09 09 09 20 20 20 20 20 20 26 62 72 77 2d 3e | .......NULL,.0,...........&brw-> |
22e0 | 77 6d 2e 70 72 6f 67 5f 64 61 74 61 29 3b 0a 20 20 20 69 66 20 28 62 72 77 2d 3e 77 6d 2e 70 72 | wm.prog_data);....if.(brw->wm.pr |
2300 | 6f 67 5f 62 6f 20 3d 3d 20 4e 55 4c 4c 29 0a 20 20 20 20 20 20 64 6f 5f 77 6d 5f 70 72 6f 67 28 | og_bo.==.NULL).......do_wm_prog( |
2320 | 62 72 77 2c 20 66 70 2c 20 26 6b 65 79 29 3b 0a 7d 0a 0a 0a 2f 2a 20 53 65 65 20 62 72 77 5f 77 | brw,.fp,.&key);.}.../*.See.brw_w |
2340 | 6d 2e 63 3a 0a 20 2a 2f 0a 63 6f 6e 73 74 20 73 74 72 75 63 74 20 62 72 77 5f 74 72 61 63 6b 65 | m.c:..*/.const.struct.brw_tracke |
2360 | 64 5f 73 74 61 74 65 20 62 72 77 5f 77 6d 5f 70 72 6f 67 20 3d 20 7b 0a 20 20 20 2e 64 69 72 74 | d_state.brw_wm_prog.=.{.....dirt |
2380 | 79 20 3d 20 7b 0a 20 20 20 20 20 20 2e 6d 65 73 61 20 20 3d 20 28 5f 4e 45 57 5f 43 4f 4c 4f 52 | y.=.{........mesa..=.(_NEW_COLOR |
23a0 | 20 7c 0a 09 09 5f 4e 45 57 5f 44 45 50 54 48 20 7c 0a 09 09 5f 4e 45 57 5f 53 54 45 4e 43 49 4c | .|..._NEW_DEPTH.|..._NEW_STENCIL |
23c0 | 20 7c 0a 09 09 5f 4e 45 57 5f 50 4f 4c 59 47 4f 4e 20 7c 0a 09 09 5f 4e 45 57 5f 4c 49 4e 45 20 | .|..._NEW_POLYGON.|..._NEW_LINE. |
23e0 | 7c 0a 09 09 5f 4e 45 57 5f 4c 49 47 48 54 20 7c 0a 09 09 5f 4e 45 57 5f 42 55 46 46 45 52 53 20 | |..._NEW_LIGHT.|..._NEW_BUFFERS. |
2400 | 7c 0a 09 09 5f 4e 45 57 5f 54 45 58 54 55 52 45 29 2c 0a 20 20 20 20 20 20 2e 62 72 77 20 20 20 | |..._NEW_TEXTURE),........brw... |
2420 | 3d 20 28 42 52 57 5f 4e 45 57 5f 46 52 41 47 4d 45 4e 54 5f 50 52 4f 47 52 41 4d 20 7c 0a 09 09 | =.(BRW_NEW_FRAGMENT_PROGRAM.|... |
2440 | 42 52 57 5f 4e 45 57 5f 57 4d 5f 49 4e 50 55 54 5f 44 49 4d 45 4e 53 49 4f 4e 53 20 7c 0a 09 09 | BRW_NEW_WM_INPUT_DIMENSIONS.|... |
2460 | 42 52 57 5f 4e 45 57 5f 52 45 44 55 43 45 44 5f 50 52 49 4d 49 54 49 56 45 29 2c 0a 20 20 20 20 | BRW_NEW_REDUCED_PRIMITIVE),..... |
2480 | 20 20 2e 63 61 63 68 65 20 3d 20 30 0a 20 20 20 7d 2c 0a 20 20 20 2e 70 72 65 70 61 72 65 20 3d | ...cache.=.0....},.....prepare.= |
24a0 | 20 62 72 77 5f 70 72 65 70 61 72 65 5f 77 6d 5f 70 72 6f 67 0a 7d 3b 0a 0a | .brw_prepare_wm_prog.};.. |