Lines Matching refs:ff

1051     /* ucp for ff applies on world coordinates.
1524 * When we use vs ff,
1529 * actually affect pixel fog (and not vertex fog) when vs ff is used,
1623 /* ff vs + ps 3.0: some elements are passed to the ps (wine test).
1632 key.lighting = !!context->rs[D3DRS_LIGHTING] && context->ff.num_lights_active;
1633 key.darkness = !!context->rs[D3DRS_LIGHTING] && !context->ff.num_lights_active;
1672 unsigned gen = (context->ff.tex_stage[s][D3DTSS_TEXCOORDINDEX] >> 16) + 1;
1673 unsigned idx = context->ff.tex_stage[s][D3DTSS_TEXCOORDINDEX] & 7;
1686 dim = context->ff.tex_stage[s][D3DTSS_TEXTURETRANSFORMFLAGS] & 0x7;
1694 DBG("VS ff key hash: %x\n", nine_ff_vs_key_hash(&key));
1695 vs = util_hash_table_get(device->ff.ht_vs, &key);
1706 _mesa_hash_table_insert(device->ff.ht_vs, &vs->ff_key, vs);
1707 device->ff.num_vs++;
1719 #define GET_D3DTS(n) nine_state_access_transform(&context->ff, D3DTS_##n, FALSE)
1720 #define IS_D3DTS_DIRTY(s,n) ((s)->ff.changed.transform[(D3DTS_##n) / 32] & (1 << ((D3DTS_##n) % 32)))
1736 key.ts[s].colorop = context->ff.tex_stage[s][D3DTSS_COLOROP];
1737 key.ts[s].alphaop = context->ff.tex_stage[s][D3DTSS_ALPHAOP];
1749 ((context->ff.tex_stage[s][D3DTSS_COLORARG0] == D3DTA_TEXTURE &&
1751 (context->ff.tex_stage[s][D3DTSS_COLORARG1] == D3DTA_TEXTURE &&
1753 (context->ff.tex_stage[s][D3DTSS_COLORARG2] == D3DTA_TEXTURE &&
1764 if (context->ff.tex_stage[s][D3DTSS_COLORARG0] == D3DTA_TEXTURE ||
1765 context->ff.tex_stage[s][D3DTSS_COLORARG1] == D3DTA_TEXTURE ||
1766 context->ff.tex_stage[s][D3DTSS_COLORARG2] == D3DTA_TEXTURE ||
1767 context->ff.tex_stage[s][D3DTSS_ALPHAARG0] == D3DTA_TEXTURE ||
1768 context->ff.tex_stage[s][D3DTSS_ALPHAARG1] == D3DTA_TEXTURE ||
1769 context->ff.tex_stage[s][D3DTSS_ALPHAARG2] == D3DTA_TEXTURE)
1773 if (used_c & 0x1) key.ts[s].colorarg0 = context->ff.tex_stage[s][D3DTSS_COLORARG0] & 0x7;
1774 if (used_c & 0x2) key.ts[s].colorarg1 = context->ff.tex_stage[s][D3DTSS_COLORARG1] & 0x7;
1775 if (used_c & 0x4) key.ts[s].colorarg2 = context->ff.tex_stage[s][D3DTSS_COLORARG2] & 0x7;
1776 if (used_c & 0x1) key.colorarg_b4[0] |= ((context->ff.tex_stage[s][D3DTSS_COLORARG0] >> 4) & 0x1) << s;
1777 if (used_c & 0x1) key.colorarg_b5[0] |= ((context->ff.tex_stage[s][D3DTSS_COLORARG0] >> 5) & 0x1) << s;
1778 if (used_c & 0x2) key.colorarg_b4[1] |= ((context->ff.tex_stage[s][D3DTSS_COLORARG1] >> 4) & 0x1) << s;
1779 if (used_c & 0x2) key.colorarg_b5[1] |= ((context->ff.tex_stage[s][D3DTSS_COLORARG1] >> 5) & 0x1) << s;
1780 if (used_c & 0x4) key.colorarg_b4[2] |= ((context->ff.tex_stage[s][D3DTSS_COLORARG2] >> 4) & 0x1) << s;
1781 if (used_c & 0x4) key.colorarg_b5[2] |= ((context->ff.tex_stage[s][D3DTSS_COLORARG2] >> 5) & 0x1) << s;
1784 if (used_a & 0x1) key.ts[s].alphaarg0 = context->ff.tex_stage[s][D3DTSS_ALPHAARG0] & 0x7;
1785 if (used_a & 0x2) key.ts[s].alphaarg1 = context->ff.tex_stage[s][D3DTSS_ALPHAARG1] & 0x7;
1786 if (used_a & 0x4) key.ts[s].alphaarg2 = context->ff.tex_stage[s][D3DTSS_ALPHAARG2] & 0x7;
1787 if (used_a & 0x1) key.alphaarg_b4[0] |= ((context->ff.tex_stage[s][D3DTSS_ALPHAARG0] >> 4) & 0x1) << s;
1788 if (used_a & 0x2) key.alphaarg_b4[1] |= ((context->ff.tex_stage[s][D3DTSS_ALPHAARG1] >> 4) & 0x1) << s;
1789 if (used_a & 0x4) key.alphaarg_b4[2] |= ((context->ff.tex_stage[s][D3DTSS_ALPHAARG2] >> 4) & 0x1) << s;
1791 key.ts[s].resultarg = context->ff.tex_stage[s][D3DTSS_RESULTARG] == D3DTA_TEMP;
1836 * W is the source if vs ff is used, and the
1845 DBG("PS ff key hash: %x\n", nine_ff_ps_key_hash(&key));
1846 ps = util_hash_table_get(device->ff.ht_ps, &key);
1855 _mesa_hash_table_insert(device->ff.ht_ps, &ps->ff_key, ps);
1856 device->ff.num_ps++;
1869 D3DMATRIX *M = (D3DMATRIX *)device->ff.vs_const;
1873 /* TODO: use ff.vs_const as storage of W, V, P matrices */
1901 device->ff.vs_const[30 * 4] = asfloat(context->rs[D3DRS_TWEENFACTOR]);
1908 struct fvec4 *dst = (struct fvec4 *)device->ff.vs_const;
1912 const D3DMATERIAL9 *mtl = &context->ff.material;
1928 for (l = 0; l < context->ff.num_lights_active; ++l) {
1929 const D3DLIGHT9 *light = &context->ff.light[context->ff.active_light[l]];
1945 dst[39 + l * 8].w = (float)((l + 1) == context->ff.num_lights_active);
1953 struct fvec4 *dst = (struct fvec4 *)device->ff.vs_const;
1974 D3DMATRIX *M = (D3DMATRIX *)device->ff.vs_const;
1977 if (!(context->ff.changed.transform[0] & 0xff0000))
1981 nine_d3d_matrix_transpose(&M[32 + s], nine_state_access_transform(&context->ff, D3DTS_TEXTURE0 + s, FALSE));
1989 struct fvec4 *dst = (struct fvec4 *)device->ff.ps_const;
1996 d3dcolor_to_rgba(&dst[s].x, context->ff.tex_stage[s][D3DTSS_CONSTANT]);
1999 dst[8 + s].x = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVMAT00]);
2000 dst[8 + s].y = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVMAT01]);
2001 dst[8 + s].z = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVMAT10]);
2002 dst[8 + s].w = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVMAT11]);
2004 dst[16 + s / 2].z = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVLSCALE]);
2005 dst[16 + s / 2].w = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVLOFFSET]);
2007 dst[16 + s / 2].x = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVLSCALE]);
2008 dst[16 + s / 2].y = asfloat(context->ff.tex_stage[s][D3DTSS_BUMPENVLOFFSET]);
2023 struct fvec4 *dst = (struct fvec4 *)device->ff.vs_const;
2048 device->ff.vs = nine_ff_get_vs(device);
2052 device->ff.ps = nine_ff_get_ps(device);
2063 memset(context->ff.changed.transform, 0, sizeof(context->ff.changed.transform));
2067 cb.user_buffer = device->ff.vs_const;
2081 cb.user_buffer = device->ff.ps_const;
2095 device->ff.ht_vs = _mesa_hash_table_create(NULL, nine_ff_vs_key_hash,
2097 device->ff.ht_ps = _mesa_hash_table_create(NULL, nine_ff_ps_key_hash,
2100 device->ff.ht_fvf = _mesa_hash_table_create(NULL, nine_ff_fvf_key_hash,
2103 device->ff.vs_const = CALLOC(NINE_FF_NUM_VS_CONST, 4 * sizeof(float));
2104 device->ff.ps_const = CALLOC(NINE_FF_NUM_PS_CONST, 4 * sizeof(float));
2106 return device->ff.ht_vs && device->ff.ht_ps &&
2107 device->ff.ht_fvf &&
2108 device->ff.vs_const && device->ff.ps_const;
2120 if (device->ff.ht_vs) {
2121 util_hash_table_foreach(device->ff.ht_vs, nine_ff_ht_delete_cb, NULL);
2122 _mesa_hash_table_destroy(device->ff.ht_vs, NULL);
2124 if (device->ff.ht_ps) {
2125 util_hash_table_foreach(device->ff.ht_ps, nine_ff_ht_delete_cb, NULL);
2126 _mesa_hash_table_destroy(device->ff.ht_ps, NULL);
2128 if (device->ff.ht_fvf) {
2129 util_hash_table_foreach(device->ff.ht_fvf, nine_ff_ht_delete_cb, NULL);
2130 _mesa_hash_table_destroy(device->ff.ht_fvf, NULL);
2132 device->ff.vs = NULL; /* destroyed by unbinding from hash table */
2133 device->ff.ps = NULL;
2135 FREE(device->ff.vs_const);
2136 FREE(device->ff.ps_const);
2144 if (device->ff.num_vs > 1024) {
2147 util_hash_table_foreach(device->ff.ht_vs, nine_ff_ht_delete_cb, NULL);
2148 _mesa_hash_table_clear(device->ff.ht_vs, NULL);
2149 device->ff.num_vs = 0;
2158 if (device->ff.num_ps > 1024) {
2161 util_hash_table_foreach(device->ff.ht_ps, nine_ff_ht_delete_cb, NULL);
2162 _mesa_hash_table_clear(device->ff.ht_ps, NULL);
2163 device->ff.num_ps = 0;