Thu, 09 Jun 2011 01:59:49 -0400 Maybe fix scalar operations in preshader interpreter.
Ryan C. Gordon <icculus@icculus.org> [Thu, 09 Jun 2011 01:59:49 -0400] rev 1053
Maybe fix scalar operations in preshader interpreter.
Thu, 09 Jun 2011 01:56:10 -0400 Don't allocate zero bytes for MOJOSHADER_symbolTypeInfo::members.
Ryan C. Gordon <icculus@icculus.org> [Thu, 09 Jun 2011 01:56:10 -0400] rev 1052
Don't allocate zero bytes for MOJOSHADER_symbolTypeInfo::members.
Thu, 02 Jun 2011 14:49:30 -0400 Fixed off-by-one error in testparse.
Ryan C. Gordon <icculus@icculus.org> [Thu, 02 Jun 2011 14:49:30 -0400] rev 1051
Fixed off-by-one error in testparse.
Thu, 02 Jun 2011 03:17:18 -0400 Fixed temp count in preshaders.
Ryan C. Gordon <icculus@icculus.org> [Thu, 02 Jun 2011 03:17:18 -0400] rev 1050
Fixed temp count in preshaders.
Thu, 02 Jun 2011 00:51:50 -0400 ARB1: Use OPTION ARB_position_invariant if we didn't write to result.position.
Ryan C. Gordon <icculus@icculus.org> [Thu, 02 Jun 2011 00:51:50 -0400] rev 1049
ARB1: Use OPTION ARB_position_invariant if we didn't write to result.position.
Thu, 02 Jun 2011 00:47:17 -0400 ARB1, GLSL: Deal with multiple draw buffers (registers oC1, etc).
Ryan C. Gordon <icculus@icculus.org> [Thu, 02 Jun 2011 00:47:17 -0400] rev 1048
ARB1, GLSL: Deal with multiple draw buffers (registers oC1, etc).
Wed, 01 Jun 2011 13:22:55 -0400 Don't try to allocate a temp array if the preshader has no temps.
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 13:22:55 -0400] rev 1047
Don't try to allocate a temp array if the preshader has no temps.
Wed, 01 Jun 2011 13:22:21 -0400 Place preshader destination register last in operand list.
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 13:22:21 -0400] rev 1046
Place preshader destination register last in operand list. This is where it's located in the shader, and it simplies some things.
Wed, 01 Jun 2011 05:35:50 -0400 Fixed wrong array offset in preshader interpreter.
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 05:35:50 -0400] rev 1045
Fixed wrong array offset in preshader interpreter. (dst operand is first, skip it when loading src operands.)
Wed, 01 Jun 2011 03:30:03 -0400 Report preshader symbol table in testparse.
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 03:30:03 -0400] rev 1044
Report preshader symbol table in testparse.
Wed, 01 Jun 2011 02:15:29 -0400 Preshader input registers are separate from the actual shader constant file!
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 02:15:29 -0400] rev 1043
Preshader input registers are separate from the actual shader constant file! So make the effort to manage yet-another set of arrays for these registers...
Wed, 01 Jun 2011 02:14:12 -0400 Export symbol information for preshaders.
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 02:14:12 -0400] rev 1042
Export symbol information for preshaders.
Wed, 01 Jun 2011 02:11:57 -0400 Fixed compiler warnings.
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 02:11:57 -0400] rev 1041
Fixed compiler warnings.
Wed, 01 Jun 2011 01:16:12 -0400 Added functions to query the register files.
Ryan C. Gordon <icculus@icculus.org> [Wed, 01 Jun 2011 01:16:12 -0400] rev 1040
Added functions to query the register files.
Tue, 31 May 2011 16:25:37 -0400 Run preshaders during MOJOSHADER_glProgramReady().
Ryan C. Gordon <icculus@icculus.org> [Tue, 31 May 2011 16:25:37 -0400] rev 1039
Run preshaders during MOJOSHADER_glProgramReady().
Tue, 31 May 2011 16:25:00 -0400 Allow preshader support to be #ifdef'd out, to reduce binary size.
Ryan C. Gordon <icculus@icculus.org> [Tue, 31 May 2011 16:25:00 -0400] rev 1038
Allow preshader support to be #ifdef'd out, to reduce binary size.
Tue, 31 May 2011 16:01:10 -0400 Filled in and fixed some stuff in the Effect parser.
Ryan C. Gordon <icculus@icculus.org> [Tue, 31 May 2011 16:01:10 -0400] rev 1037
Filled in and fixed some stuff in the Effect parser. This code is all nasty, because I'm planning to rewrite it later.
Tue, 31 May 2011 03:23:39 -0400 First shot at preshader interpreter. Completely untested!
Ryan C. Gordon <icculus@icculus.org> [Tue, 31 May 2011 03:23:39 -0400] rev 1036
First shot at preshader interpreter. Completely untested!
Tue, 31 May 2011 01:09:12 -0400 Changed CMPLT and CMPGE to LT and GE, to match what fxc spits out.
Ryan C. Gordon <icculus@icculus.org> [Tue, 31 May 2011 01:09:12 -0400] rev 1035
Changed CMPLT and CMPGE to LT and GE, to match what fxc spits out.
Tue, 31 May 2011 00:56:00 -0400 Found, I think, the final preshader opcodes.
Ryan C. Gordon <icculus@icculus.org> [Tue, 31 May 2011 00:56:00 -0400] rev 1034
Found, I think, the final preshader opcodes. I wrote a goofy program to edit a file, run it through fxc.exe /dumpbin, and diff the results to automate the search. #include <stdio.h> #include <stdlib.h> #define FNAME "test.fxc" #define OFFSET 7804 #define STARTVAL 0xA000 int main(void) { system("./fxc.exe /nologo /Tfx_2_0 /dumpbin " FNAME " >dump.txt"); int i = STARTVAL; for (i = STARTVAL; i < STARTVAL+0x100; i += 0x10) { FILE *io = fopen(FNAME, "r+b"); if (io == NULL) return 1; fseek(io, OFFSET, SEEK_SET); const unsigned short y = 0x0001; fwrite(&y, sizeof (y), 1, io); const unsigned short x = (unsigned short) i; fwrite(&x, sizeof (x), 1, io); fflush(io); fclose(io); system("./fxc.exe /nologo /Tfx_2_0 /dumpbin " FNAME " >dump2.txt"); fprintf(stderr, "0x%X ... \n", i); system("diff -u dump.txt dump2.txt 1>&2"); } return 0; }
Mon, 30 May 2011 23:39:12 -0400 Added DIV preshader opcode.
Ryan C. Gordon <icculus@icculus.org> [Mon, 30 May 2011 23:39:12 -0400] rev 1033
Added DIV preshader opcode. After poking around with a hex editor and fxc.exe /dumpbin, I _think_ this is everything from the 0x1000, 0x2000, and 0xA000 blocks. There might be some 0x3000 or 0x5000 opcodes out there still.
Mon, 30 May 2011 19:56:41 -0400 Added some more preshader opcodes, cleaned up opcode handling elsewhere.
Ryan C. Gordon <icculus@icculus.org> [Mon, 30 May 2011 19:56:41 -0400] rev 1032
Added some more preshader opcodes, cleaned up opcode handling elsewhere.
Mon, 30 May 2011 19:34:03 -0400 Put preshader opcode switch in numeric order. Makes missing values obvious.
Ryan C. Gordon <icculus@icculus.org> [Mon, 30 May 2011 19:34:03 -0400] rev 1031
Put preshader opcode switch in numeric order. Makes missing values obvious.
Mon, 30 May 2011 16:41:22 -0400 Initial work on preshader support.
Ryan C. Gordon <icculus@icculus.org> [Mon, 30 May 2011 16:41:22 -0400] rev 1030
Initial work on preshader support. Parses and outputs in testparse. Some gaps in the reverse engineering still, and probably some bugs still, too. Doesn't actually USE the preshaders yet, but now the data is available to us.
Sun, 29 May 2011 17:48:30 -0400 Moved some logic around in parsing CTABs.
Ryan C. Gordon <icculus@icculus.org> [Sun, 29 May 2011 17:48:30 -0400] rev 1029
Moved some logic around in parsing CTABs.
Sun, 29 May 2011 17:34:12 -0400 Parse symbols in the CTAB, export them in MOJOSHADER_parseData.
Ryan C. Gordon <icculus@icculus.org> [Sun, 29 May 2011 17:34:12 -0400] rev 1028
Parse symbols in the CTAB, export them in MOJOSHADER_parseData.
Sun, 29 May 2011 11:58:40 -0400 Recover slightly better from unrecognized instruction tokens.
Ryan C. Gordon <icculus@icculus.org> [Sun, 29 May 2011 11:58:40 -0400] rev 1027
Recover slightly better from unrecognized instruction tokens.
Tue, 24 May 2011 23:24:15 -0400 GLSL: texldd-specific arguments need to be cast to vec2.
Ryan C. Gordon <icculus@icculus.org> [Tue, 24 May 2011 23:24:15 -0400] rev 1026
GLSL: texldd-specific arguments need to be cast to vec2.
Tue, 24 May 2011 23:15:50 -0400 Favor GL_ARB_shader_texture_lod over GL_EXT_gpu_shader4.
Ryan C. Gordon <icculus@icculus.org> [Tue, 24 May 2011 23:15:50 -0400] rev 1025
Favor GL_ARB_shader_texture_lod over GL_EXT_gpu_shader4. One enables just the piece of functionality we care about for TEXLDD, the other enables a whole kitchen sink.
Tue, 24 May 2011 04:38:48 -0400 Test for the GL extension, not whether the entry point is NULL.
Ryan C. Gordon <icculus@icculus.org> [Tue, 24 May 2011 04:38:48 -0400] rev 1024
Test for the GL extension, not whether the entry point is NULL. (glXGetProcAddress() can legally return a non-NULL pointer...you have to make sure it is safe to call yourself by checking the GL_EXTENSIONS string!)
(0) -1000 -300 -100 -50 -30 +30 +50 +100 tip