Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

clashie

Member Since 13 Jun 2008
Offline Last Active May 13 2013 10:37 PM
-----

Posts I've Made

In Topic: driver crashes and 1080p video makes pc shutdown

05 March 2013 - 09:03 PM

If you trip the thermal limit, the machine will just likely shut off instantly before the part is damaged. It's also not unusual for the driver to crash if the hardware is extremely hot.

 

When my GTX 260's fan died, I was pushing nearly 110c with even the most minor activity. The driver would crash continually and if it kept climbing, poof, computer would just turn off. The metal backing was actually so hot that I probably could of burned myself on it. Check your temperatures!


In Topic: In-Game Console

13 January 2013 - 01:34 AM

The actual logic behind a console system isn't too hard to put together, I have a simple Cvar class which uses template specializations for the argument types I support (float, int, string, and nothing) so when you create a Cvar object, it sets an internal flag accordingly for the type you tried to give it so it knows how to act on it later. It uses a FastDelegate internally for the function pointer stuff.

 

Then I just dump them into a map<string, Cvar> for the lookup. The Console class has an exec() function which just takes a string -- if there's 2 parts to it (like "test 500") then I split that into to name and argument, use the name for the lookup, and 500 is converted and handled accordingly. It's not really robust, but it's really tiny and simple, I think the whole thing is like around 150 lines.


In Topic: Shader semantics

30 December 2012 - 01:08 AM

Seems kind of weird that they just leave things off their list, but whatever, I guess it doesn't really matter.

Now that things are working, I made it into a starfield. Pretty neat how I can just draw the whole thing in one call, and they can all be uniquely scaled, rotated, etc.
https://dl.dropbox.com/u/10565193/d/starfield.png


edit: Also solving things shortly after I post seems to be a trend of mine. I'm apparently incapable of working things out before I get annoyed and go to ask for help. smile.png

In Topic: Shader semantics

29 December 2012 - 11:26 PM

Actually I'm retarded and solved that. I done goofed somewhere and I wasn't giving CreateInputLayout() the right number. I have pretty triangles spread about again.

Still curious as to why the MSDN list of semantics is apparently incomplete, and if I should be trying to pad stuff out to a certain size.

In Topic: Shader semantics

29 December 2012 - 11:12 PM

Which is one of the problems, why doesn't MSDN have the complete list of these things? It doesn't even mention that WORLDVIEW exists. :/

Ok, before I just used a single vector for my instance position, but I want to be able to rotate, scale, etc, so I figured I'd just make use a matrix instead.

So before, I just did something like this:
layout[2].SemanticName		= "TEXCOORD";
layout[2].SemanticIndex		= 0;
layout[2].Format		= DXGI_FORMAT_R32G32B32A32_FLOAT;
layout[2].InputSlot		= 1;
layout[2].AlignedByteOffset	= 0;
layout[2].InputSlotClass	= D3D11_INPUT_PER_INSTANCE_DATA;
layout[2].InstanceDataStepRate	= 1;

...

VOut vs(float4 pos : POSITION, float4 col : COLOR, float4 ins : TEXCOORD0)
{
	VOut output;
	
	pos.x += ins.x;
	pos.y += ins.y;
...

Ok, bam, works.

But I'm not sure what I'm doing wrong here trying to access my matrix. I changed my input layout to this:
layout[2].SemanticName		= "TEXCOORD";
layout[2].SemanticIndex		= 0;
layout[2].Format		= DXGI_FORMAT_R32G32B32A32_FLOAT;
layout[2].InputSlot		= 1;
layout[2].AlignedByteOffset	= 0;
layout[2].InputSlotClass	= D3D11_INPUT_PER_INSTANCE_DATA;
layout[2].InstanceDataStepRate	= 1;

layout[3].SemanticName		= "TEXCOORD";
layout[3].SemanticIndex		= 1;
layout[3].Format		= DXGI_FORMAT_R32G32B32A32_FLOAT;
layout[3].InputSlot		= 1;
layout[3].AlignedByteOffset	= D3D11_APPEND_ALIGNED_ELEMENT;
layout[3].InputSlotClass	= D3D11_INPUT_PER_INSTANCE_DATA;
layout[3].InstanceDataStepRate	= 1;

layout[4].SemanticName		= "TEXCOORD";
layout[4].SemanticIndex		= 2;
layout[4].Format		= DXGI_FORMAT_R32G32B32A32_FLOAT;
layout[4].InputSlot		= 1;
layout[4].AlignedByteOffset	= D3D11_APPEND_ALIGNED_ELEMENT;
layout[4].InputSlotClass	= D3D11_INPUT_PER_INSTANCE_DATA;
layout[4].InstanceDataStepRate	= 1;

layout[5].SemanticName		= "TEXCOORD";
layout[5].SemanticIndex		= 3;
layout[5].Format		= DXGI_FORMAT_R32G32B32A32_FLOAT;
layout[5].InputSlot		= 1;
layout[5].AlignedByteOffset	= D3D11_APPEND_ALIGNED_ELEMENT;
layout[5].InputSlotClass	= D3D11_INPUT_PER_INSTANCE_DATA;
layout[5].InstanceDataStepRate	= 1;

...

The post I linked makes it look like I can just do something like this:
VOut vs(float4 pos : POSITION, float4 col : COLOR, float4x4 ins : TEXCOORD)
{
VOut output;

pos = mul(pos, ins);
...

The shader seems to compile fine, but the runtime immediately complains that:
D3D11: ERROR: ID3D11Device::CreateInputLayout: The provided input signature expects to read an element with SemanticName/Index: 'TEXCOORD'/1, but the declaration doesn't provide a matching name. [ STATE_CREATION ERROR #163: CREATEINPUTLAYOUT_MISSINGELEMENT ]

On creation of the input layout.

PARTNERS