Lines Matching refs:baseShader

452     void *fe_data = shader->baseShader.frontend_data;
461 shader_delete_constant_list(&shader->baseShader.constantsF);
462 shader_delete_constant_list(&shader->baseShader.constantsB);
463 shader_delete_constant_list(&shader->baseShader.constantsI);
558 list_add_head(&shader->baseShader.constantsF, &lconst->entry);
574 list_add_head(&shader->baseShader.constantsI, &lconst->entry);
591 list_add_head(&shader->baseShader.constantsB, &lconst->entry);
767 shader->baseShader.functionLength = ((const char *)ptr - (const char *)byte_code);
1099 IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)shader->baseShader.device;
1100 const struct wined3d_shader_frontend *fe = shader->baseShader.frontend;
1101 void *fe_data = shader->baseShader.frontend_data;
1122 shader->baseShader.parse_state.current_row = 0;
1402 ((IWineD3DDeviceImpl *)shader->baseShader.device)->shader_backend->shader_destroy(iface);
1403 HeapFree(GetProcessHeap(), 0, shader->baseShader.reg_maps.constf);
1404 HeapFree(GetProcessHeap(), 0, shader->baseShader.function);
1405 shader_delete_constant_list(&shader->baseShader.constantsF);
1406 shader_delete_constant_list(&shader->baseShader.constantsB);
1407 shader_delete_constant_list(&shader->baseShader.constantsI);
1408 list_remove(&shader->baseShader.shader_list_entry);
1410 if (shader->baseShader.frontend && shader->baseShader.frontend_data)
1412 shader->baseShader.frontend->shader_free(shader->baseShader.frontend_data);
1475 *parent = shader->baseShader.parent;
1484 *data_size = shader->baseShader.functionLength;
1488 if (*data_size < shader->baseShader.functionLength)
1496 memcpy(data, shader->baseShader.function, shader->baseShader.functionLength);
1504 struct shader_reg_maps *reg_maps = &shader->baseShader.reg_maps;
1517 shader->baseShader.frontend = fe;
1518 shader->baseShader.frontend_data = fe->shader_init(byte_code, output_signature);
1519 if (!shader->baseShader.frontend_data)
1526 if (TRACE_ON(d3d_shader)) shader_trace_init(fe, shader->baseShader.frontend_data, byte_code);
1529 list_init(&shader->baseShader.constantsF);
1530 list_init(&shader->baseShader.constantsB);
1531 list_init(&shader->baseShader.constantsI);
1535 reg_maps, shader->baseShader.input_signature, shader->baseShader.output_signature,
1539 shader->baseShader.function = HeapAlloc(GetProcessHeap(), 0, shader->baseShader.functionLength);
1540 if (!shader->baseShader.function) return E_OUTOFMEMORY;
1541 memcpy(shader->baseShader.function, byte_code, shader->baseShader.functionLength);
1569 ULONG refcount = InterlockedIncrement(&shader->baseShader.ref);
1583 ULONG refcount = InterlockedDecrement(&shader->baseShader.ref);
1590 shader_chache_put(&((IWineD3DDeviceImpl*)shader->baseShader.device)->vshaderCache, (IWineD3DBaseShaderImpl*)shader);
1594 shader->baseShader.parent_ops->wined3d_object_destroyed(shader->baseShader.parent);
1624 IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)shader->baseShader.device;
1643 list_add_head(&shader->baseShader.constantsF, &lconst->entry);
1669 args->swizzle_map = ((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.swizzle_map;
1685 WORD map = shader->baseShader.reg_maps.input_registers;
1704 DWORD shader_version = WINED3D_SHADER_VERSION(shader->baseShader.reg_maps.shader_version.major,
1705 shader->baseShader.reg_maps.shader_version.minor);
1706 IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)shader->baseShader.device;
1708 shader->baseShader.limits.texcoord = 0;
1709 shader->baseShader.limits.attributes = 16;
1710 shader->baseShader.limits.packed_input = 0;
1716 shader->baseShader.limits.temporary = 12;
1717 shader->baseShader.limits.constant_bool = 0;
1718 shader->baseShader.limits.constant_int = 0;
1719 shader->baseShader.limits.address = 1;
1720 shader->baseShader.limits.packed_output = 0;
1721 shader->baseShader.limits.sampler = 0;
1722 shader->baseShader.limits.label = 0;
1726 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1731 shader->baseShader.limits.temporary = 12;
1732 shader->baseShader.limits.constant_bool = 16;
1733 shader->baseShader.limits.constant_int = 16;
1734 shader->baseShader.limits.address = 1;
1735 shader->baseShader.limits.packed_output = 0;
1736 shader->baseShader.limits.sampler = 0;
1737 shader->baseShader.limits.label = 16;
1738 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1746 shader->baseShader.limits.temporary = 32;
1747 shader->baseShader.limits.constant_bool = 32;
1748 shader->baseShader.limits.constant_int = 32;
1749 shader->baseShader.limits.address = 1;
1750 shader->baseShader.limits.packed_output = 12;
1751 shader->baseShader.limits.sampler = 4;
1752 shader->baseShader.limits.label = 16; /* FIXME: 2048 */
1758 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1762 shader->baseShader.limits.temporary = 12;
1763 shader->baseShader.limits.constant_bool = 16;
1764 shader->baseShader.limits.constant_int = 16;
1765 shader->baseShader.limits.address = 1;
1766 shader->baseShader.limits.packed_output = 0;
1767 shader->baseShader.limits.sampler = 0;
1768 shader->baseShader.limits.label = 16;
1769 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1771 shader->baseShader.reg_maps.shader_version.major,
1772 shader->baseShader.reg_maps.shader_version.minor);
1781 struct shader_reg_maps *reg_maps = &shader->baseShader.reg_maps;
1789 shader_init(&shader->baseShader, device, parent, parent_ops);
1800 map = shader->baseShader.reg_maps.input_registers;
1803 if (!(map & 1) || !shader->baseShader.input_signature[i].semantic_name) continue;
1806 shader_usage_from_semantic_name(shader->baseShader.input_signature[i].semantic_name);
1807 shader->attributes[i].usage_idx = shader->baseShader.input_signature[i].semantic_idx;
1816 shader->baseShader.output_signature[e->register_idx] = *e;
1846 shader->baseShader.load_local_constsF = shader->baseShader.reg_maps.usesrelconstF
1847 && !list_empty(&shader->baseShader.constantsF);
1973 ULONG refcount = InterlockedIncrement(&shader->baseShader.ref);
1983 ULONG refcount = InterlockedDecrement(&shader->baseShader.ref);
1990 shader_chache_put(&((IWineD3DDeviceImpl*)shader->baseShader.device)->pshaderCache, (IWineD3DBaseShaderImpl*)shader);
1994 shader->baseShader.parent_ops->wined3d_object_destroyed(shader->baseShader.parent);
2042 if (shader->baseShader.reg_maps.shader_version.major==1
2043 && shader->baseShader.reg_maps.shader_version.minor<=3)
2059 if (!shader->baseShader.reg_maps.sampler_type[i]) continue;
2079 if (shader->baseShader.reg_maps.shader_version.major >= 3)
2081 if (((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.position_transformed)
2103 if (((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.position_transformed
2133 DWORD shader_version = WINED3D_SHADER_VERSION(shader->baseShader.reg_maps.shader_version.major,
2134 shader->baseShader.reg_maps.shader_version.minor);
2136 shader->baseShader.limits.attributes = 0;
2137 shader->baseShader.limits.address = 0;
2138 shader->baseShader.limits.packed_output = 0;
2146 shader->baseShader.limits.temporary = 2;
2147 shader->baseShader.limits.constant_float = 8;
2148 shader->baseShader.limits.constant_int = 0;
2149 shader->baseShader.limits.constant_bool = 0;
2150 shader->baseShader.limits.texcoord = 4;
2151 shader->baseShader.limits.sampler = 4;
2152 shader->baseShader.limits.packed_input = 0;
2153 shader->baseShader.limits.label = 0;
2157 shader->baseShader.limits.temporary = 6;
2158 shader->baseShader.limits.constant_float = 8;
2159 shader->baseShader.limits.constant_int = 0;
2160 shader->baseShader.limits.constant_bool = 0;
2161 shader->baseShader.limits.texcoord = 6;
2162 shader->baseShader.limits.sampler = 6;
2163 shader->baseShader.limits.packed_input = 0;
2164 shader->baseShader.limits.label = 0;
2169 shader->baseShader.limits.temporary = 32;
2170 shader->baseShader.limits.constant_float = 32;
2171 shader->baseShader.limits.constant_int = 16;
2172 shader->baseShader.limits.constant_bool = 16;
2173 shader->baseShader.limits.texcoord = 8;
2174 shader->baseShader.limits.sampler = 16;
2175 shader->baseShader.limits.packed_input = 0;
2179 shader->baseShader.limits.temporary = 32;
2180 shader->baseShader.limits.constant_float = 32;
2181 shader->baseShader.limits.constant_int = 16;
2182 shader->baseShader.limits.constant_bool = 16;
2183 shader->baseShader.limits.texcoord = 8;
2184 shader->baseShader.limits.sampler = 16;
2185 shader->baseShader.limits.packed_input = 0;
2186 shader->baseShader.limits.label = 16;
2194 shader->baseShader.limits.temporary = 32;
2195 shader->baseShader.limits.constant_float = 224;
2196 shader->baseShader.limits.constant_int = 16;
2197 shader->baseShader.limits.constant_bool = 16;
2198 shader->baseShader.limits.texcoord = 0;
2199 shader->baseShader.limits.sampler = 16;
2200 shader->baseShader.limits.packed_input = 12;
2201 shader->baseShader.limits.label = 16; /* FIXME: 2048 */
2205 shader->baseShader.limits.temporary = 32;
2206 shader->baseShader.limits.constant_float = 32;
2207 shader->baseShader.limits.constant_int = 16;
2208 shader->baseShader.limits.constant_bool = 16;
2209 shader->baseShader.limits.texcoord = 8;
2210 shader->baseShader.limits.sampler = 16;
2211 shader->baseShader.limits.packed_input = 0;
2212 shader->baseShader.limits.label = 0;
2214 shader->baseShader.reg_maps.shader_version.major,
2215 shader->baseShader.reg_maps.shader_version.minor);
2230 shader_init(&shader->baseShader, device, parent, parent_ops);
2282 shader->baseShader.load_local_constsF = FALSE;
2344 LIST_FOR_EACH_ENTRY(tstShader, &device->shaders, IWineD3DBaseShaderImpl, baseShader.shader_list_entry) {
2345 if (&tstShader->baseShader == shader)
2358 if (pShader->baseShader.u32CacheDataInited)
2359 return pShader->baseShader.u32Hash;
2361 u32Hash = pShader->baseShader.functionLength;
2362 function = pShader->baseShader.function;
2363 for (i = 0; i < pShader->baseShader.functionLength / 4; ++i)
2368 for (i = 0; i < pShader->baseShader.functionLength % 4; ++i)
2373 pShader->baseShader.u32Hash = u32Hash;
2374 pShader->baseShader.u32CacheDataInited = TRUE;
2375 return pShader->baseShader.u32Hash;
2386 if (pShader1->baseShader.functionLength != pShader2->baseShader.functionLength)
2392 Assert(memcmp(pShader1->baseShader.function, pShader2->baseShader.function, pShader1->baseShader.functionLength));
2397 return !memcmp(pShader1->baseShader.function, pShader2->baseShader.function, pShader1->baseShader.functionLength);
2400 #define VBOX_SHADER_FROM_CACHE_ENTRY(_pEntry) RT_FROM_MEMBER(RT_FROM_MEMBER((_pEntry), IWineD3DBaseShaderClass, CacheEntry), IWineD3DBaseShaderImpl, baseShader)
2406 if (pShader->baseShader.parent)
2407 pShader->baseShader.parent_ops->wined3d_object_destroyed(pShader->baseShader.parent);
2423 if (pShader->baseShader.parent)
2425 pShader->baseShader.parent_ops->wined3d_object_destroyed(pShader->baseShader.parent);
2426 pShader->baseShader.parent = NULL;
2429 VBoxExtCachePut(pCache, pShader, &pShader->baseShader.CacheEntry);
2441 shader_reinit(&pCachedShader->baseShader, (IWineD3DDeviceImpl *)pShader->baseShader.device,
2442 pShader->baseShader.parent, pShader->baseShader.parent_ops);
2443 pShader->baseShader.parent = NULL;