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;
1400 ((IWineD3DDeviceImpl *)shader->baseShader.device)->shader_backend->shader_destroy(iface);
1401 HeapFree(GetProcessHeap(), 0, shader->baseShader.reg_maps.constf);
1402 HeapFree(GetProcessHeap(), 0, shader->baseShader.function);
1403 shader_delete_constant_list(&shader->baseShader.constantsF);
1404 shader_delete_constant_list(&shader->baseShader.constantsB);
1405 shader_delete_constant_list(&shader->baseShader.constantsI);
1406 list_remove(&shader->baseShader.shader_list_entry);
1408 if (shader->baseShader.frontend && shader->baseShader.frontend_data)
1410 shader->baseShader.frontend->shader_free(shader->baseShader.frontend_data);
1473 *parent = shader->baseShader.parent;
1482 *data_size = shader->baseShader.functionLength;
1486 if (*data_size < shader->baseShader.functionLength)
1494 memcpy(data, shader->baseShader.function, shader->baseShader.functionLength);
1502 struct shader_reg_maps *reg_maps = &shader->baseShader.reg_maps;
1515 shader->baseShader.frontend = fe;
1516 shader->baseShader.frontend_data = fe->shader_init(byte_code, output_signature);
1517 if (!shader->baseShader.frontend_data)
1524 if (TRACE_ON(d3d_shader)) shader_trace_init(fe, shader->baseShader.frontend_data, byte_code);
1527 list_init(&shader->baseShader.constantsF);
1528 list_init(&shader->baseShader.constantsB);
1529 list_init(&shader->baseShader.constantsI);
1533 reg_maps, shader->baseShader.input_signature, shader->baseShader.output_signature,
1537 shader->baseShader.function = HeapAlloc(GetProcessHeap(), 0, shader->baseShader.functionLength);
1538 if (!shader->baseShader.function) return E_OUTOFMEMORY;
1539 memcpy(shader->baseShader.function, byte_code, shader->baseShader.functionLength);
1567 ULONG refcount = InterlockedIncrement(&shader->baseShader.ref);
1581 ULONG refcount = InterlockedDecrement(&shader->baseShader.ref);
1588 shader_chache_put(&((IWineD3DDeviceImpl*)shader->baseShader.device)->vshaderCache, (IWineD3DBaseShaderImpl*)shader);
1591 shader->baseShader.parent_ops->wined3d_object_destroyed(shader->baseShader.parent);
1620 IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)shader->baseShader.device;
1639 list_add_head(&shader->baseShader.constantsF, &lconst->entry);
1665 args->swizzle_map = ((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.swizzle_map;
1681 WORD map = shader->baseShader.reg_maps.input_registers;
1700 DWORD shader_version = WINED3D_SHADER_VERSION(shader->baseShader.reg_maps.shader_version.major,
1701 shader->baseShader.reg_maps.shader_version.minor);
1702 IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)shader->baseShader.device;
1704 shader->baseShader.limits.texcoord = 0;
1705 shader->baseShader.limits.attributes = 16;
1706 shader->baseShader.limits.packed_input = 0;
1712 shader->baseShader.limits.temporary = 12;
1713 shader->baseShader.limits.constant_bool = 0;
1714 shader->baseShader.limits.constant_int = 0;
1715 shader->baseShader.limits.address = 1;
1716 shader->baseShader.limits.packed_output = 0;
1717 shader->baseShader.limits.sampler = 0;
1718 shader->baseShader.limits.label = 0;
1722 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1727 shader->baseShader.limits.temporary = 12;
1728 shader->baseShader.limits.constant_bool = 16;
1729 shader->baseShader.limits.constant_int = 16;
1730 shader->baseShader.limits.address = 1;
1731 shader->baseShader.limits.packed_output = 0;
1732 shader->baseShader.limits.sampler = 0;
1733 shader->baseShader.limits.label = 16;
1734 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1742 shader->baseShader.limits.temporary = 32;
1743 shader->baseShader.limits.constant_bool = 32;
1744 shader->baseShader.limits.constant_int = 32;
1745 shader->baseShader.limits.address = 1;
1746 shader->baseShader.limits.packed_output = 12;
1747 shader->baseShader.limits.sampler = 4;
1748 shader->baseShader.limits.label = 16; /* FIXME: 2048 */
1754 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1758 shader->baseShader.limits.temporary = 12;
1759 shader->baseShader.limits.constant_bool = 16;
1760 shader->baseShader.limits.constant_int = 16;
1761 shader->baseShader.limits.address = 1;
1762 shader->baseShader.limits.packed_output = 0;
1763 shader->baseShader.limits.sampler = 0;
1764 shader->baseShader.limits.label = 16;
1765 shader->baseShader.limits.constant_float = min(256, device->d3d_vshader_constantF);
1767 shader->baseShader.reg_maps.shader_version.major,
1768 shader->baseShader.reg_maps.shader_version.minor);
1777 struct shader_reg_maps *reg_maps = &shader->baseShader.reg_maps;
1785 shader_init(&shader->baseShader, device, parent, parent_ops);
1796 map = shader->baseShader.reg_maps.input_registers;
1799 if (!(map & 1) || !shader->baseShader.input_signature[i].semantic_name) continue;
1802 shader_usage_from_semantic_name(shader->baseShader.input_signature[i].semantic_name);
1803 shader->attributes[i].usage_idx = shader->baseShader.input_signature[i].semantic_idx;
1812 shader->baseShader.output_signature[e->register_idx] = *e;
1842 shader->baseShader.load_local_constsF = shader->baseShader.reg_maps.usesrelconstF
1843 && !list_empty(&shader->baseShader.constantsF);
1969 ULONG refcount = InterlockedIncrement(&shader->baseShader.ref);
1979 ULONG refcount = InterlockedDecrement(&shader->baseShader.ref);
1986 shader_chache_put(&((IWineD3DDeviceImpl*)shader->baseShader.device)->pshaderCache, (IWineD3DBaseShaderImpl*)shader);
1989 shader->baseShader.parent_ops->wined3d_object_destroyed(shader->baseShader.parent);
2036 if (shader->baseShader.reg_maps.shader_version.major==1
2037 && shader->baseShader.reg_maps.shader_version.minor<=3)
2053 if (!shader->baseShader.reg_maps.sampler_type[i]) continue;
2073 if (shader->baseShader.reg_maps.shader_version.major >= 3)
2075 if (((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.position_transformed)
2097 if (((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.position_transformed
2127 DWORD shader_version = WINED3D_SHADER_VERSION(shader->baseShader.reg_maps.shader_version.major,
2128 shader->baseShader.reg_maps.shader_version.minor);
2130 shader->baseShader.limits.attributes = 0;
2131 shader->baseShader.limits.address = 0;
2132 shader->baseShader.limits.packed_output = 0;
2140 shader->baseShader.limits.temporary = 2;
2141 shader->baseShader.limits.constant_float = 8;
2142 shader->baseShader.limits.constant_int = 0;
2143 shader->baseShader.limits.constant_bool = 0;
2144 shader->baseShader.limits.texcoord = 4;
2145 shader->baseShader.limits.sampler = 4;
2146 shader->baseShader.limits.packed_input = 0;
2147 shader->baseShader.limits.label = 0;
2151 shader->baseShader.limits.temporary = 6;
2152 shader->baseShader.limits.constant_float = 8;
2153 shader->baseShader.limits.constant_int = 0;
2154 shader->baseShader.limits.constant_bool = 0;
2155 shader->baseShader.limits.texcoord = 6;
2156 shader->baseShader.limits.sampler = 6;
2157 shader->baseShader.limits.packed_input = 0;
2158 shader->baseShader.limits.label = 0;
2163 shader->baseShader.limits.temporary = 32;
2164 shader->baseShader.limits.constant_float = 32;
2165 shader->baseShader.limits.constant_int = 16;
2166 shader->baseShader.limits.constant_bool = 16;
2167 shader->baseShader.limits.texcoord = 8;
2168 shader->baseShader.limits.sampler = 16;
2169 shader->baseShader.limits.packed_input = 0;
2173 shader->baseShader.limits.temporary = 32;
2174 shader->baseShader.limits.constant_float = 32;
2175 shader->baseShader.limits.constant_int = 16;
2176 shader->baseShader.limits.constant_bool = 16;
2177 shader->baseShader.limits.texcoord = 8;
2178 shader->baseShader.limits.sampler = 16;
2179 shader->baseShader.limits.packed_input = 0;
2180 shader->baseShader.limits.label = 16;
2188 shader->baseShader.limits.temporary = 32;
2189 shader->baseShader.limits.constant_float = 224;
2190 shader->baseShader.limits.constant_int = 16;
2191 shader->baseShader.limits.constant_bool = 16;
2192 shader->baseShader.limits.texcoord = 0;
2193 shader->baseShader.limits.sampler = 16;
2194 shader->baseShader.limits.packed_input = 12;
2195 shader->baseShader.limits.label = 16; /* FIXME: 2048 */
2199 shader->baseShader.limits.temporary = 32;
2200 shader->baseShader.limits.constant_float = 32;
2201 shader->baseShader.limits.constant_int = 16;
2202 shader->baseShader.limits.constant_bool = 16;
2203 shader->baseShader.limits.texcoord = 8;
2204 shader->baseShader.limits.sampler = 16;
2205 shader->baseShader.limits.packed_input = 0;
2206 shader->baseShader.limits.label = 0;
2208 shader->baseShader.reg_maps.shader_version.major,
2209 shader->baseShader.reg_maps.shader_version.minor);
2224 shader_init(&shader->baseShader, device, parent, parent_ops);
2276 shader->baseShader.load_local_constsF = FALSE;
2338 LIST_FOR_EACH_ENTRY(tstShader, &device->shaders, IWineD3DBaseShaderImpl, baseShader.shader_list_entry) {
2339 if (&tstShader->baseShader == shader)
2352 if (pShader->baseShader.u32CacheDataInited)
2353 return pShader->baseShader.u32Hash;
2355 u32Hash = pShader->baseShader.functionLength;
2356 function = pShader->baseShader.function;
2357 for (i = 0; i < pShader->baseShader.functionLength / 4; ++i)
2362 for (i = 0; i < pShader->baseShader.functionLength % 4; ++i)
2367 pShader->baseShader.u32Hash = u32Hash;
2368 pShader->baseShader.u32CacheDataInited = TRUE;
2369 return pShader->baseShader.u32Hash;
2380 if (pShader1->baseShader.functionLength != pShader2->baseShader.functionLength)
2386 Assert(memcmp(pShader1->baseShader.function, pShader2->baseShader.function, pShader1->baseShader.functionLength));
2391 return !memcmp(pShader1->baseShader.function, pShader2->baseShader.function, pShader1->baseShader.functionLength);
2394 #define VBOX_SHADER_FROM_CACHE_ENTRY(_pEntry) RT_FROM_MEMBER(RT_FROM_MEMBER((_pEntry), IWineD3DBaseShaderClass, CacheEntry), IWineD3DBaseShaderImpl, baseShader)
2400 if (pShader->baseShader.parent)
2401 pShader->baseShader.parent_ops->wined3d_object_destroyed(pShader->baseShader.parent);
2417 if (pShader->baseShader.parent)
2419 pShader->baseShader.parent_ops->wined3d_object_destroyed(pShader->baseShader.parent);
2420 pShader->baseShader.parent = NULL;
2423 VBoxExtCachePut(pCache, pShader, &pShader->baseShader.CacheEntry);
2435 shader_reinit(&pCachedShader->baseShader, (IWineD3DDeviceImpl *)pShader->baseShader.device,
2436 pShader->baseShader.parent, pShader->baseShader.parent_ops);
2437 pShader->baseShader.parent = NULL;